class_docstr: Probabilistic Neural Network (PNN). Network applies only to
  the classification problems.
  
  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.
  
  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.verbose}
  
  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.
  
  {BaseSkeleton.fit}
  
  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
class_docstr_tok: ["Probabilistic","Neural","Network","(","PNN",")",".","Network","applies","only","to","the","classification","problems",".","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",".","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.verbose","}","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",".","{","BaseSkeleton.fit","}","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"]
docstr: Predict probabilities for each class.
  
  Parameters
  ----------
  X : array-like (n_samples, n_features)
  
  Returns
  -------
  array-like (n_samples, n_classes)
docstr_tok: ["Predict","probabilities","for","each","class",".","Parameters","--","--","--","--","--","X",":","array-like","(","n_samples",",","n_features",")","Returns","--","--","--","-","array-like","(","n_samples",",","n_classes",")"]
code: def predict_proba(self, X):
      """
      Predict probabilities for each class.
  
      Parameters
      ----------
      X : array-like (n_samples, n_features)
  
      Returns
      -------
      array-like (n_samples, n_classes)
      """
      outputs = iters.apply_batches(
          function=self.predict_raw,
          inputs=format_data(X),
          batch_size=self.batch_size,
          show_progressbar=self.logs.enable,
      )
      raw_output = np.concatenate(outputs, axis=1)
  
      total_output_sum = raw_output.sum(axis=0).reshape((-1, 1))
      return raw_output.T / total_output_sum
  
file_path: neupy/neupy/algorithms/rbfn/pnn.py
imports: import numpy
  from neupy.utils import format_data, iters
  from neupy.core.properties import BoundedProperty, IntProperty
  from neupy.algorithms.base import BaseSkeleton
  from neupy.exceptions import NotTrained
  from .utils import pdf_between_data
label_desc: Use image node_id 3 for calling the PNN obj's underlying member method code with example usage: obj.predict_proba(X) and returns: unknown