Skip to main content

A Python library for NNRW (neural network with random weights)

Project description

pyNNRW

pyNNRW: A Python library for NNRW (neural network with random weights). Basic functions:

  1. Implements 2 fundamental NNRW flavors, i.e., ELM and RVFL.
  2. Performance comparison with main machine learning models, e.g., SVM, decision tree, MLP.
  3. NNRW-based ensembles (in progress).

Installation

pip install pyNNRW

How to use

Download the sample dataset from the /data folder. There are two data files: 1. 7044X_RAMAN.csv 2. 7143X_UV.csv.
The two files are the Raman and UV (ultra-violet) spectroscopic profiling data of herb samples from 4 different regions.

Use the following sample code to use the package:

<1> Use low-level classes, e.g., ELM, RVFL. The following code trains and tests an ELM model.

# ===============================
# Import library
# ===============================
# import the library
from pyNNRW import nnrw

# ===============================
# Load dataset
# ===============================
df = pd.read_csv('7044X_RAMAN.csv')
X = np.array(df.iloc[:,1:])
y = np.array(df.iloc[:,0]) # 1st col is the label
n_classes = len(set(y))
x_train, x_test, t_train, t_test = train_test_split(X, y, test_size=0.2)
t_train = to_categorical(t_train, n_classes).astype(np.float32)
t_test = to_categorical(t_test, n_classes).astype(np.float32)
# print(x_train.shape, x_test.shape, t_train.shape, t_test.shape)

# ===============================
# set ELM parameters
# ===============================
n_hidden_nodes = L #x_train.shape[1]
loss = 'mean_squared_error' # 'mean_absolute_error'
activation = 'sigmoid' # 'identity'

# ===============================
# Instantiate ELM
# ===============================
model = nnrw.ELM(
    n_input_nodes = x_train.shape[1],
    n_hidden_nodes = n_hidden_nodes,
    n_output_nodes = n_classes,
    loss = loss,
    activation=activation,
    name='elm'
)

# ===============================
# Training
# ===============================
    
train_loss, train_acc, train_precision, train_recall = model.evaluate(x_train, t_train, metrics=['loss', 'accuracy', 'precision', 'recall'])

# ===============================
# Validation
# ===============================
val_loss, val_acc, val_precision, val_recall = model.evaluate(x_test, t_test, metrics=['loss', 'accuracy', 'precision', 'recall'])

<2> You may also use high-level APIs, as follows.

# train and test an ELM model
train_acc, val_acc, t = nnrw.ELMClf(X, y, L = 20, verbose = False) # L is hidden layer nodes

# train and test a RVFL model
train_acc, val_acc, t = nnrw.RVFLClf(X, y, L = 20, verbose = False) # L is hidden layer nodes

# Conduct a performance test for ELM at varied L hyper-parameters (1~60). Each iteration is averaged on 20 rounds.
train_accs, val_accs, ts = nnrw.PerformenceTests(ELMClf, X, y, Ls = list(range(1, 60)), N = 20)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyNNRW-0.1.7.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

pyNNRW-0.1.7-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file pyNNRW-0.1.7.tar.gz.

File metadata

  • Download URL: pyNNRW-0.1.7.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/1.5.0 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for pyNNRW-0.1.7.tar.gz
Algorithm Hash digest
SHA256 2cac28b209090ea3635d9eec9eeca92dbf32ce0740cbdd59c88cdd619b5a7d99
MD5 35646a0dc626e953738c964b7c117626
BLAKE2b-256 91bbae49dfce37cb2d69ffc05568cd6bc20c2886694a51a77ee988e7de595c20

See more details on using hashes here.

File details

Details for the file pyNNRW-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: pyNNRW-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/1.5.0 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for pyNNRW-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b3afa4436d56742c9ed72a02ce69f194530803db652c0496b7a4d2efd524360c
MD5 02801a208960ce74d8faa92f6cc5a6bf
BLAKE2b-256 357fd0fd5fc7565ac132903bdaa4e9e517b4f6c77c37d56e629e73bf6d8b1ab0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page