模型抽象类 simple_ml.base.base_model


一、分类模型

class BaseClassifier(object):
    
    __metaclass__ = ABCMeta
    
    def __init__(self):
        pass

1.1 继承关系

子类

父类

None

1.2 方法

def _clear()

清空所有变量


@staticmethod
def _check_y(y)
@staticmethod
def _check_x(x)

检查y和x的shape变量类型 是否满足要求


@staticmethod
def _check_label_type(y)
@staticmethod
def _check_feature_type(x)

检查特征和标签的类别,即 LabelType


@abstractmethod
def fit(self, x, y):
    pass

@abstractmethod
def predict(self, x):
    pass

@abstractmethod
def score(self, x, y):
    pass

分类模型的核心方法,子类必须重写

3. 成员属性

属性名称 类型 含义
self.x np.2darray 特征
self.y np.array 标签
slef.sample_num int 样本数
self.variable_num int 特征数
self.label_type LabelType 标签类别
self.feature_type List[LabelType] 特征类别

二、转换模型

class BaseTransform(object):
    
    __metaclass__ = ABCMeta
    
    def __init__(self):
        pass    

2.1 继承关系

子类

父类

None

2.2 方法

def _clear()

清空所有变量


@staticmethod
def _check_y(y)
@staticmethod
def _check_x(x)

检查y和x的shape变量类型 是否满足要求


@staticmethod
def _check_label_type(y)
@staticmethod
def _check_feature_type(x)

检查特征和标签的类别,即 LabelType


@abstractmethod
def fit(self, x, y):
    pass

@abstractmethod
def transform(self, x):
    pass

@abstractmethod
def fit_transform(self, x, y):
    pass

转换模型的核心方法,子类必须重写

2.3 成员属性

属性名称 类型 含义
self.x np.2darray 特征
self.y np.array 标签
slef.sample_num int 样本数
self.variable_num int 特征数
self.label_type LabelType 标签类别
self.feature_type List[LabelType] 特征类别

三、多分类转二分类 (Multi2Binary)

class Multi2Binary:

    def __init__(self):
        pass

针对部分模型难以从模型角度解决多分类问题,比如SVM, Logistic,AdaBoost, simple_ml构建了一个转换类,通过实例化多个分类器,来进行多分类,具体做法如下:

3.1 继承关系

3.2 类方法

1 多值拟合

def _multi_fit(self, model)

当子类标签类别为多值时,在子类的fit函数中调用,传入实例本身:

self._multi_fit(self)

  名称 类型 描述
Parameters: model BaseClassifier 二元分类器
Returns:   Void  

2 多值单样本预测

def _multi_predict_single(self, x)
  名称 类型 描述
Parameters: x np.array 单样本测试集特征
Returns:   np.array 预测标签

3 多值多样本预测

 def _multi_predict(self, x)
  名称 类型 描述
Parameters: x np.2darray 测试集特征
Returns:   np.array 预测标签

3.3 成员属性

属性名称 类型 含义
new_models List[BaseClassifier] 分类器列表,长度等于标签类别
model_num int 分类器数目
y_unique np.array 标签唯一值

返回主页