入力データ・フォーマットを処理するためBaseEstimatorクラス
グローバル変数のクラス\ [X、Y、Y \ _ {必要}、{fit_必要} \]
\ [X、Y \] __setup_inputによって()メソッド\ [X、Y \] numpy.ndarrayタイプなります
入力データがない場合[Y \] \、次に\ [Y \ _ {必要} = Falseの\]
入力データを処理\ [X \]のように実行することは、以下:
1. Xがnumpy.ndarrayタイプ、変換タイプでない場合、
前記Xは、空の配列、エラープロンプト値であれば、
3次元Xは、その後、1の場合Xは、XがX.shape [0]の数であり、サンプル1の数であり;
前記Xの次元数が1でない場合は、Xは、Xは、他の次元の数である、サンプルX.shape [0]の数であります製品長さの数。
あなたが入力した場合、\ [Y \]にある\ [Y \]以下のように段階のプロセス:
1. yは、エラー入力yを入力する必要がなかった場合、
Xはnumpy.ndarrayタイプ、変換タイプではない2.場合。
3. yを入力しますが、サイズは誤り、その後、0である場合。
# coding: utf-8
import numpy as np
class BaseEstimator(Object):
X = None
y = None
y_required = True
fit_required = True
def __setup_input(self,X,y=None):
if not isinstance(X,np.ndarray):
X = np.array(X)
if X.size == 0:
raise ValueError('Number of feautures must be > 0 ')
if X.ndim == 1:
self.n_samples, self.n_feautures = 1, X.shape
else:
self.n_samples, self.n_feautures = X.shape[0], np.prod(X.shape[1:])
self.X = X
if self.y_required:
if y is None:
raise ValueError('Missed required argument y ')
if not isinstance(y,np.ndarray):
y = np.array(y)
if y.size == 0:
raise ValueError('Number of target y must be > 0')
self.y = y
def fit(self,X,y= None):
self.__setup_input(X,y)
def predict(self,X=None):
if not isinstance(X,np.ndarray):
X = np.array(X)
if X is not None or not fit_required:
return self._predict(X)
else:
raise ValueError('You must call fit before predict')
def _predict(X=None):
raise NotImplementedError()