Usage


Installation

PyLearn can be installed via pip:

pip install pylearn-ml

Note

For installation: pylearn-ml

For import: pylearn


Importing PyLearn

To use PyLearn, import it as follows:

import pylearn as pl


Usage


Save and Load Models

To save and load models, you can use the following functions.

This avoids training your model again with every program execution.

pl.save(model, filename)
pl.load(filename)

Example

network = [
  ...
]

# train model
pl.NeuralNetwork.fit(...)
pl.save(network, "models/network.pkl")

...

# test model
network = pl.load("models/network.pkl")
pl.NeuralNetwork.predict(...)


Normalization

Functions for normalization:

pl.min_max_normalization(data)
pl.z_normalization(data)

Example

# Data to normalize
data = [2, 5, 10, 15, 20]

min_max_norm = pl.min_max_normalization(data)
z_norm = pl.z_normalization(data)


Train and test Data

You can split your data into train and test and shuffle the data:

pl.train_test_split(X, y, test_size, shuffle, random_seed)

Example

X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]])
y = np.array([0, 1, 0, 1, 0])

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_seed=42)

print("Training Features:")
print(X_train)
print("Training Labels:")
print(y_train)

print("Test Features:")
print(X_test)
print("Test Labels:")
print(y_test)


Evaluation Metrics

To evaluate classification models, you can use:

pl.accuracy(true_labels, predicted_labels)
pl.precision(true_labels, predicted_labels)
pl.recall(true_labels, predicted_labels)
pl.f1_score(true_labels, predicted_labels)

Example

# train any model
model = pl.Model()
model.fit(features, output)

# predict
predictions = model.predict(features)

# evaluate
accuracy = pl.accuracy(output, predictions)
precision = pl.precision(output, predictions)
recall = pl.recall(output, predictions)
f1 = pl.f1_score(output, predictions)


Mean Squared Error

For regression tasks, you can calculate mean squared error:

pl.mean_squared_error(true_values, predicted_values)

Example

# true values and predicted values
true_values = [2, 4, 6, 8, 10]
predicted_values = [3, 5, 7, 9, 11]

# calculate MSE
mse = pl.mean_squared_error(true_values, predicted_values)


Sum of Squared Errors

Additionally, you can compute the sum of squared errors:

pl.sum_of_squared_errors(true_values, predicted_values)

Example

# true values and predicted values
true_values = [2, 4, 6, 8, 10]
predicted_values = [3, 5, 7, 9, 11]

# calculate MSE
sse = pl.sum_of_squared_errors(true_values, predicted_values)


One-Hot Encoding

pylearn provides a function for one-hot encoding:

pl.to_one_hot(labels)

Example

# labels to encode
labels = [0, 1, 2, 3, 4]

# perform One-Hot Encoding
encoded_labels = pl.to_one_hot(labels)




Classification

For classification tasks, PyLearn offers:


Gaussian Naive Bayes

Gaussian Naive Bayes is a probabilistic classifier that assumes that the features are independent and follows a normal distribution.


Usage Example:

gnb = pl.GaussianNaiveBayes()
gnb.fit(features, output)
predictions = gnb.predict(features)

Multinomial Naive Bayes

Multinomial Naive Bayes is suitable for classification with discrete features (e.g., word counts).


Usage Example:

mnb = pl.MultinomialNaiveBayes()
mnb.fit(features, output)
predictions = mnb.predict(features)


Clustering

For clustering tasks, pylearn offers:


K-Means

K-Means is a popular clustering algorithm that partitions data into K clusters based on similarity.


Usage Example:

kmeans = pl.KMeans()
kmeans.fit(points)
clusters = kmeans.assigned_clusters()

K-Medoids

K-Medoids is similar to K-Means but uses actual data points (medoids) as cluster centers.


Usage Example:

kmedoids = pl.KMedoids()
kmedoids.fit(points)
clusters = kmedoids.assigned_clusters()
kmedoids.rename(old_cluster_id, new_cluster_id)

Gaussian Mixture Model

GMM is similar to K-Means but uses Gaussian distribution.


Usage Example:

gmm = pl.GaussianMixture()
gmm.fit(points)


Neural Network

For neural network implementations, you can define a network architecture and train it using:

network = [
    pl.Dense_layer(input_length, output_length),
    pl.Tanh(),
    pl.Dense_layer(input_length, output_length),
    pl.Tanh()
]

pl.NeuralNetwork.fit(x_train, y_train, network, loss, loss_derivative, epochs, log_error, log_duration)
predictions = pl.NeuralNetwork.predict(x, network)

Usage Example:

# load data
features, output = load_data()

# train Gaussian Naive Bayes classifier
gnb = pl.GaussianNaiveBayes()
gnb.fit(features, output)

# predict
predictions = gnb.predict(features)

# evaluate
accuracy = pl.accuracy(output, predictions)
precision = pl.precision(output, predictions)
recall = pl.recall(output, predictions)
f1 = pl.f1_score(output, predictions)

print("Accuracy:", accuracy)
print("Precision:", precision)
print("Recall:", recall)
print("F1 Score:", f1)