基本クラスを確立するためのデータを処理

入力データ・フォーマットを処理するため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()

おすすめ

転載: www.cnblogs.com/shq-lj/p/11845048.html
おすすめ