neupy.algorithms.PNN
- class neupy.algorithms.PNN[source]
Probabilistic Neural Network (PNN). Network applies only to the classification problems.
Parameters: - std : float
Standard deviation for the Probability Density Function (PDF). If your input features have high values than standard deviation should also be high. For instance, if input features from range [0, 20] that standard deviation should be also a big value like 10 or 15. Small values will lead to bad prediction.
- batch_size : int or None
Set up min-batch size. The None value will ensure that all data samples will be propagated through the network at once. Defaults to 128.
- verbose : bool
Property controls verbose output in terminal. The True value enables informative output in the terminal and False - disable it. Defaults to False.
Notes
- PNN Network is sensitive for cases when one input feature has higher values than the other one. Input data has to be normalized before training.
- Standard deviation has to match the range of the input features Check std parameter description for more information.
- The bigger training dataset the slower prediction. Algorithm is much more efficient for small datasets.
- Network uses lazy learning which mean that network doesn’t need iterative training. It just stores parameters and use them to make a predictions.
Examples
>>> import numpy as np >>> >>> from sklearn import datasets, metrics >>> from sklearn.model_selection import train_test_split >>> from neupy import algorithms >>> >>> dataset = datasets.load_digits() >>> x_train, x_test, y_train, y_test = train_test_split( ... dataset.data, dataset.target, test_size=0.3 ... ) >>> >>> pnn = algorithms.PNN(std=10, verbose=False) >>> pnn.train(x_train, y_train) >>> >>> y_predicted = pnn.predict(x_test) >>> metrics.accuracy_score(y_test, y_predicted) 0.98888888888888893
Methods
train(X_train, y_train, copy=True) Network just stores all the information about the data and use it for the prediction. Parameter copy copies input data before saving it inside the network. The y_train argument should be a vector or matrix with one feature column. predict(X) Return classes associated with each sample in the X. predict_proba(X) Predict probabilities for each class. fit(*args, **kwargs) Alias to the train method. - batch_size = None[source]
- options = {'batch_size': Option(class_name='PNN', value=IntProperty(name="batch_size")), 'std': Option(class_name='PNN', value=BoundedProperty(name="std")), 'verbose': Option(class_name='Verbose', value=VerboseProperty(name="verbose"))}[source]
- predict(X)[source]
Predicts class from the input data.
Parameters: - X : array-like (n_samples, n_features)
Returns: - array-like (n_samples,)
- predict_proba(X)[source]
Predict probabilities for each class.
Parameters: - X : array-like (n_samples, n_features)
Returns: - array-like (n_samples, n_classes)
- predict_raw(X)[source]
Raw prediction.
Parameters: - X : array-like (n_samples, n_features)
Returns: - array-like (n_samples, n_classes)
Raises: - NotTrained
If network hasn’t been trained.
- ValueError
In case if something is wrong with input data.
- std = None[source]
- train(X_train, y_train, copy=True)[source]
Trains network. PNN doesn’t actually train, it just stores input data and use it for prediction.
Parameters: - X_train : array-like (n_samples, n_features)
- y_train : array-like (n_samples,)
Target variable should be vector or matrix with one feature column.
- copy : bool
If value equal to True than input matrices will be copied. Defaults to True.
Raises: - ValueError
In case if something is wrong with input data.