abupy.MLBu package

Submodules

abupy.MLBu.ABuML module

中间层,从上层拿到x,y,df 拥有create estimator

class abupy.MLBu.ABuML.AbuML(x, y, df, fiter_type=<EMLFitType.E_FIT_AUTO: 'auto'>)[源代码]

Bases: object

封装有简单学习及无监督学习方法以及相关操作类

adaboost_classifier_best(**kwargs)[源代码]
eg:

adaboost_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.adaboost_classifier_best(param_grid=param_grid, n_jobs=-1)

out: AdaBoostClassifier(learning_rate=0.6, n_estimators=70)

adaboost_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.adaboost_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2),
‘n_estimators’: np.arange(10, 100, 10)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的AdaBoostClassifier对象
adaboost_regressor_best(**kwargs)[源代码]
eg:

adaboost_regressor_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.adaboost_regressor_best(param_grid=param_grid, n_jobs=-1)

out: AdaBoostRegressor(learning_rate=0.8, n_estimators=40)

adaboost_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.adaboost_regressor_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2),
‘n_estimators’: np.arange(10, 100, 10)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的AdaBoostRegressor对象
bagging_classifier_best(**kwargs)[源代码]
eg:

bagging_classifier_best有param_grid参数调用:

param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)} ttn_abu.bagging_classifier_best(param_grid=param_grid, n_jobs=-1)

out: BaggingClassifier(max_samples=4, n_estimators=100)

bagging_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.bagging_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的BaggingClassifier对象
bagging_regressor_best(**kwargs)[源代码]
eg:

bagging_regressor_best有param_grid参数调用:

param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)} ttn_abu.bagging_regressor_best(param_grid=param_grid, n_jobs=-1)

out: BaggingRegressor(max_samples=4, n_estimators=250)

bagging_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.bagging_regressor_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的BaggingRegressor对象
classmethod create_test_fiter()[源代码]

类方法:使用iris数据构造AbuML对象,测试接口,通过简单iris数据对方法以及策略进行验证 iris数据量小,如需要更多数据进行接口测试可使用create_test_more_fiter接口

eg: iris_abu = AbuML.create_test_fiter()

返回:AbuML(x, y, df), eg: df
y x0 x1 x2 x3

0 0 5.1 3.5 1.4 0.2 1 0 4.9 3.0 1.4 0.2 2 0 4.7 3.2 1.3 0.2 3 0 4.6 3.1 1.5 0.2 4 0 5.0 3.6 1.4 0.2 .. .. ... ... ... ... 145 2 6.7 3.0 5.2 2.3 146 2 6.3 2.5 5.0 1.9 147 2 6.5 3.0 5.2 2.0 148 2 6.2 3.4 5.4 2.3 149 2 5.9 3.0 5.1 1.8

classmethod create_test_more_fiter()[源代码]
类方法:使用泰坦尼克数据构造AbuML对象,测试接口,对方法以及策略进行验证 比iris数据多
eg: ttn_abu = AbuML.create_test_more_fiter()
返回:AbuML(x, y, df),构造AbuML最终的泰坦尼克数据形式如:
eg: df
Survived SibSp Parch Cabin_No Cabin_Yes Embarked_C Embarked_Q 0 0 1 0 1 0 0 0

1 1 1 0 0 1 1 0 2 1 0 0 1 0 0 0 3 1 1 0 0 1 0 0 4 0 0 0 1 0 0 0 5 0 0 0 1 0 0 1 6 0 0 0 0 1 0 0 7 0 3 1 1 0 0 0 8 1 0 2 1 0 0 0 9 1 1 0 1 0 1 0 .. ... ... ... ... ... ... ...

Embarked_S Sex_female Sex_male Pclass_1 Pclass_2 Pclass_3 0 1 0 1 0 0 1

1 0 1 0 1 0 0 2 1 1 0 0 0 1 3 1 1 0 1 0 0 4 1 0 1 0 0 1 5 0 0 1 0 0 1 6 1 0 1 1 0 0 7 1 0 1 0 0 1 8 1 1 0 0 0 1 9 0 1 0 0 1 0 .. ... ... ... ... ... ...

Age_scaled Fare_scaled

0 -0.5614 -0.5024 1 0.6132 0.7868 2 -0.2677 -0.4889 3 0.3930 0.4207 4 0.3930 -0.4863 5 -0.4271 -0.4781 6 1.7877 0.3958 7 -2.0295 -0.2241 8 -0.1943 -0.4243 .. ... ...

cross_val_accuracy_score(cv=10, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF,))装饰, 即只支持有监督学习分类,使用cross_val_score对数据进行accuracy度量 :param cv: 透传cross_val_score的参数,默认10 :param kwargs: 外部可以传递x, y, 通过

x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

确定传递self._do_cross_val_score中参数x,y, 装饰器使用的fiter_type,eg:ttn_abu.cross_val_accuracy_score(fiter_type=ml.EMLFitType.E_FIT_CLF)

返回:cross_val_score返回的score序列, eg: array([ 1. , 0.9 , 1. , 0.9 , 1. , 0.9 , 1. , 0.9 , 0.95, 1. ])
cross_val_mean_squared_score(cv=10, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类,使用cross_val_score对数据进行rmse度量 :param cv: 透传cross_val_score的参数,默认10 :param kwargs: 外部可以传递x, y, 通过

x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

确定传递self._do_cross_val_score中参数x,y, 以及装饰器使用的fiter_type,eg:ttn_abu.cross_val_roc_auc_score(fiter_type=ml.EMLFitType.E_FIT_CLF)

返回:cross_val_score返回的score序列, eg: array([-0.1889, -0.1667, -0.2135, -0.1348, -0.1573, -0.2022, -0.1798,
-0.2022, -0.1348, -0.1705])
cross_val_prob_accuracy_score(pb_threshold, cv=10, show=True, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF,))装饰, 即只支持有监督学习分类,拆分训练集,测试集,对所有数据进行一次predict_proba 获取分类的概率(具体阅读ABuMLExecute.run_prob_cv_estimator),之后根据 pb_threshold的值对结果概率进行二值转换,pb_threshold的均衡对影响数据的度量 准确度等

eg:
in: ttn_abu = AbuML.create_test_more_fiter()
ttn_abu.estimator.svc(probability=True) ttn_abu.cross_val_prob_accuracy_score(pb_threshold=0.60)
out:
threshold=0.6 prob accuracy=0.83, effect cnt=870, effect rate=0.98, score=0.81

阀值0.6,准确率0.83,生效比例0.98,分数0.81

in:
ttn_abu.cross_val_prob_accuracy_score(pb_threshold=0.80)
out:
threshold=0.8 prob accuracy=0.87, effect cnt=718, effect rate=0.81, score=0.70

阀值0.8,准确率0.87 提高,生效比例0.81 降低,分数0.70 降低

in:
ttn_abu.cross_val_prob_accuracy_score(pb_threshold=0.85)
out:
threshold=0.85 prob accuracy=0.89, effect cnt=337, effect rate=0.38, score=0.34

阀值0.85,准确率0.89 再次提高,生效比例0.38 很低,分数0.34 降低

即通过训练集数据寻找合适的prob值对数据的predict_prob进行非均衡处理,必然对交易的拦截进行非均衡 处理,只对有很大概率的的交易进行拦截

参数:
  • pb_threshold – binarize(y_prob, threshold=pb_threshold)中使用的二分阀值,float(0-1)
  • cv – 透传ABuMLExecute.run_prob_cv_estimator中的cv参数,默认10,int
  • show – 是否显示输出结果信息,默认显示
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    确定传递self._do_cross_val_score中参数x,y 装饰器使用的fiter_type

返回:

accuracy, effect_cnt, effect_rate, score

cross_val_roc_auc_score(cv=10, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF,))装饰, 即支持有监督学习分类,使用cross_val_score对数据进行roc_auc度量,如果数据的y的 label标签 > 2,通过label_binarize将label标签进行二值化处理, 依次计算二值化的列的roc_auc,结果返回score最好的数据度量 :param cv: 透传cross_val_score的参数,默认10 :param kwargs: 外部可以传递x, y, 通过

x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

确定传递self._do_cross_val_score中参数x,y, 以及装饰器使用的fiter_type,eg:ttn_abu.cross_val_roc_auc_score(fiter_type=ml.EMLFitType.E_FIT_REG)

返回:cross_val_score返回的score序列, eg: array([ 1. , 0.9 , 1. , 0.9 , 1. , 0.9 , 1. , 0.9 , 0.95, 1. ])
cross_val_silhouette_score(cv=10, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_KMEAN, ))装饰,即 只支持无监督学习kmean的cv验证,使用silhouette_score对聚类后的结果labels_ 进行度量使用silhouette_score :param cv: 透传run_silhouette_cv_estimator的参数,默认10 :param kwargs: 外部可以传递x 通过

x = kwargs.pop(‘x’, self.x)

确定传递ABuMLExecute.run_silhouette_cv_estimator中参数x 装饰器使用的fiter_type,

eg:ttn_abu.cross_val_silhouette_score(fiter_type=ml.EMLFitType.E_FIT_KMEAN)
返回:run_silhouette_cv_estimator返回的score序列, eg: array([ 0.6322, 0.6935, 0.7187, 0.6887, 0.6699, 0.703 , 0.6922,
0.7049, 0.6462, 0.6755])
decision_tree_classifier_best(**kwargs)[源代码]
eg:

decision_tree_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.decision_tree_classifier_best()

decision_tree_classifier_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘max_depth’: np.arange(1, 10, 1)} ttn_abu.decision_tree_classifier_best(param_grid=param_grid, n_jobs=-1)

out: DecisionTreeClassifier(max_features=’sqrt’, max_depth=7)

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],
‘max_depth’: np.arange(1, 10, 1)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的DecisionTreeClassifier对象
decision_tree_regressor_best(**kwargs)[源代码]
eg:

decision_tree_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.decision_tree_regressor_best()

decision_tree_regressor_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘max_depth’: np.arange(1, 10, 1)} ttn_abu.decision_tree_regressor_best(param_grid=param_grid, n_jobs=-1)

out: DecisionTreeRegressor(max_features=’sqrt’, max_depth=3)

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],
‘max_depth’: np.arange(1, 10, 1)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的DecisionTreeRegressor对象
echo_info(fiter=None)[源代码]

显示fiter class信息,self.df信息包括,head,tail,describe eg:

fiter class is: DecisionTreeClassifier(class_weight=None, criterion=’gini’, max_depth=None,
max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter=’best’)
describe:
y x0 x1 x2 x3

count 150.0000 150.0000 150.0000 150.0000 150.0000 mean 1.0000 5.8433 3.0540 3.7587 1.1987 std 0.8192 0.8281 0.4336 1.7644 0.7632 min 0.0000 4.3000 2.0000 1.0000 0.1000 25% 0.0000 5.1000 2.8000 1.6000 0.3000 50% 1.0000 5.8000 3.0000 4.3500 1.3000 75% 2.0000 6.4000 3.3000 5.1000 1.8000 max 2.0000 7.9000 4.4000 6.9000 2.5000

参数:fiter
返回:
feature_selection(show=True, **kwargs)[源代码]

被装饰器entry_wrapper()装饰,默认参数即支持有监督和无监督学习 监督学习通过sklern中的RFE包装拟合器进行fit(x, y),对数据的特征进行ranking和support评定

eg:
RFE selection
ranking support

SibSp 1 True Parch 1 True Cabin_No 1 True Cabin_Yes 7 False Embarked_C 2 False Embarked_Q 3 False Embarked_S 5 False Sex_female 8 False Sex_male 1 True Pclass_1 4 False Pclass_2 6 False Pclass_3 1 True Age_scaled 1 True Fare_scaled 1 True

无监督学习通过sklern中的VarianceThreshold进行fit(x),根据x的方差进行特征评定 eg:

unsupervised VarianceThreshold
support

SibSp True Parch True Cabin_No True Cabin_Yes True Embarked_C True Embarked_Q True Embarked_S True Sex_female True Sex_male True Pclass_1 True Pclass_2 True Pclass_3 True Age_scaled True Fare_scaled True

参数:
  • show – 是否在内部输出打印结果
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    确定传递self._do_cross_val_score中参数x,y, 以及装饰器使用的fiter_type,eg:ttn_abu.feature_selection(fiter_type=ml.EMLFitType.E_FIT_REG)

fit(**kwargs)[源代码]

包装fit操作,根据是否是有监督学习来区别 使用fit(x, y)还是fit(x)

eg:
in: iris_abu.estimator.random_forest_classifier()
iris_abu.fit()
out:
RandomForestClassifier(bootstrap=True, class_weight=None, criterion=’gini’,
max_depth=None, max_features=’auto’, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=100, n_jobs=1, oob_score=False, random_state=None, verbose=0, warm_start=False)
参数:kwargs
返回:fit(x, y)或者fit(x)操作后返回
fit_transform(**kwargs)[源代码]

被装饰器@entry_wrapper()装饰,默认参数即支持有监督和无监督学习, 内部通过检测isinstance(fiter, TransformerMixin) or hasattr(fiter, ‘fit_transform’) 来判定是否可以fit_transform

eg:

input: ttn_abu.x.shape output: (891, 14)

input: ttn_abu.fit_transform(fiter_type=ml.EMLFitType.E_FIT_PCA).shape output: (891, 4)

input: ttn_abu.fit_transform(fiter_type=ml.EMLFitType.E_FIT_KMEAN).shape output: (891, 2)

参数:kwargs
外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

以及装饰器使用的fiter_type,eg:ttn_abu.fit_transform(fiter_type=ml.EMLFitType.E_FIT_CLF)

返回:fit_transform后的转换结果矩阵
get_fiter()[源代码]

根据self.fiter_type的类型选择从self.estimator返回学习器对象

self.fiter_type == EMLFitType.E_FIT_AUTO:
自动选择有简单学习,当y的label数量 < 10个使用分类self.estimator.clf,否则回归self.estimator.reg
self.fiter_type == EMLFitType.E_FIT_REG:
使用有监督学习回归self.estimator.reg
self.fiter_type == EMLFitType.E_FIT_CLF:
使用有监督学习分类self.estimator.clf
self.fiter_type == EMLFitType.E_FIT_HMM:
使用无监督学习hmm,self.estimator.hmm
self.fiter_type == EMLFitType.E_FIT_PCA:
使用无监督学习pca,self.estimator.pca
self.fiter_type == EMLFitType.E_FIT_KMEAN:
使用无监督学习kmean,self.estimator.kmean
返回:返回学习器对象
importances_coef_pd(**kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类,根据fit后的feature_importances_或者coef_和原始self.df.columns 组成pd.DataFrame对象返回

eg:
feature importance

7 Sex_female 0.0000 10 Pclass_2 0.0018 3 Cabin_Yes 0.0033 5 Embarked_Q 0.0045 9 Pclass_1 0.0048 4 Embarked_C 0.0098 6 Embarked_S 0.0105 1 Parch 0.0154 2 Cabin_No 0.0396 0 SibSp 0.0506 11 Pclass_3 0.0790 13 Fare_scaled 0.1877 12 Age_scaled 0.2870 8 Sex_male 0.3060

coef columns

0 [-0.344229036121] SibSp 1 [-0.1049314305] Parch 2 [0.0] Cabin_No 3 [0.902140498996] Cabin_Yes 4 [0.0] Embarked_C 5 [0.0] Embarked_Q 6 [-0.417254399259] Embarked_S 7 [1.95656682017] Sex_female 8 [-0.677432099492] Sex_male 9 [0.3411515052] Pclass_1 10 [0.0] Pclass_2 11 [-1.19413332987] Pclass_3 12 [-0.523782082975] Age_scaled 13 [0.0844326510536] Fare_scaled

参数:kwargs
外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

以及装饰器使用的fiter_type,eg:ttn_abu.importances_coef_pd(fiter_type=ml.EMLFitType.E_FIT_REG)

返回:pd.DataFrame对象
is_supervised_learning()[源代码]

返回self.fiter_type所使用的是有监督学习还是无监督学习 :return: bool,True: 有监督,False: 无监督

knn_classifier_best(**kwargs)[源代码]
eg:

knn_classifier_best有param_grid参数调用:

param_grid = {‘algorithm’: [‘ball_tree’, ‘kd_tree’, ‘brute’], ‘n_neighbors’: np.arange(1, 26, 1)} ttn_abu.knn_classifier_best(param_grid=param_grid, n_jobs=-1)

out: KNeighborsClassifier(algorithm=’ball_tree’, n_neighbors=14)

knn_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.knn_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘algorithm’: [‘ball_tree’, ‘kd_tree’, ‘brute’],
‘n_neighbors’: np.arange(1, 26, 1)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的KNeighborsClassifier对象
classmethod load_ttn_raw_df()[源代码]

读取泰坦尼克测试数据 :return: pd.DataFrame对象,from接口pd.read_csv(train_csv_path)

plot_confusion_matrices(**kwargs)[源代码]

被entry_wrapper(support=(EMLFitType.E_FIT_CLF, ))装饰,即只支持分类 套接plot_confusion_matrices进行训练集测试集拆封分混淆矩阵计算且可视化 混淆矩阵

:param 外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

装饰器使用的fiter_type, eg:

ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_confusion_matrices(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_decision_function(use_pca=True, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类 :param use_pca: 是否使用pca进行降维,bool,默认True :param kwargs: 外部可以传递x, y, 通过

x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

装饰器使用的fiter_type, eg:

ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_decision_function(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_graphviz_tree(**kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类,绘制决策树或者core基于树的分类回归算法的决策示意图绘制,查看 学习器本身hasattr(fiter, ‘tree_‘)是否有tree_属性,如果没有使用决策树替换

参数:kwargs
外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

装饰器使用的fiter_type, eg:

ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_graphviz_tree(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_learning_curve(**kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类,绘制训练集数据的学习曲线,当训练集的y标签label非2分问题, 使用OneVsOneClassifier进行包装 :param kwargs:

外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

装饰器使用的fiter_type, eg:

ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_learning_curve(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_roc_estimator(pos_label=None, **kwargs)[源代码]

被entry_wrapper(support=(EMLFitType.E_FIT_CLF, ))装饰,即只支持分类 计算fpr, tpr, thresholds,最后绘制roc_auc曲线进行可视化操作

参数:
  • pos_label
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    装饰器使用的fiter_type, eg:

    ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_roc_estimator(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_visualize_tree(use_pca=True, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类, 绘制特征平面,由于特征平面需要x的维度只能是2维,所以对 x的特征列多于两个的进行降维操作,默认使用pca,还可以选择根据特征的重要, 程度选择两个importances 最重要的特征进行特征平面绘制

参数:
  • use_pca – 是否使用pca进行降维,bool,默认True
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    装饰器使用的fiter_type, eg:

    ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_visualize_tree(fiter_type=ml.EMLFitType.E_FIT_CLF)
predict(x, pre_fit=True, **kwargs)[源代码]

call有监督和无监督学习的predict,套接self._predict_callback方法,其 被装饰器params_to_numpy装饰,将predict参数中所有可迭代序列变成numpy, 即统一将x转换numpy序列,

eg:

test_input = pd.DataFrame.from_dict({‘x0’: 6.8, ‘x1’: 3.5, ‘x2’: 5.4, ‘x3’: 2.2}, orient=’index’) test_input:

0

x0 6.8 x1 3.5 x2 5.4 x3 2.2

iris_abu.predict(test_input)

params_to_numpy装饰后参数中的x转换为:array([[ 6.8, 3.5, 5.4, 2.2]]) numpy array

被装饰器entry_wrapper()装饰,默认参数即支持有监督和无监督学习 :param x: 可迭代序列,通过params_to_numpy装饰统一转换numpy :param pre_fit: bool,默认pre_fit True, 代表每次predict前先fit,

如在乎效率的情况下,需要在外部先fit后,参数pre_fit置False
参数:kwargs – 装饰器使用的fiter_type,eg:ttn_abu.predict(test_input, fiter_type=ml.EMLFitType.E_FIT_KMEAN)
返回:eg: array([2])
predict_proba(x, pre_fit=True, **kwargs)[源代码]

call有监督和无监督学习的predict_proba,套接self._predict_callback方法,其 被装饰器params_to_numpy装饰,将predict参数中所有可迭代序列变成numpy, 即统一将x转换numpy序列,

eg:

test_input = pd.DataFrame.from_dict({‘x0’: 6.8, ‘x1’: 3.5, ‘x2’: 5.4, ‘x3’: 2.2}, orient=’index’) test_input:

0

x0 6.8 x1 3.5 x2 5.4 x3 2.2

iris_abu.predict_proba(test_input, fiter_type=ml.EMLFitType.E_FIT_CLF)

params_to_numpy装饰后参数中的x转换为:array([[ 6.8, 3.5, 5.4, 2.2]]) numpy array

被装饰器entry_wrapper()装饰,默认参数即支持有监督和无监督学习 :param x: 通过params_to_numpy装饰统一转换numpy :param pre_fit: bool,默认pre_fit True, 代表每次predict前先fit,

如在乎效率的情况下,需要在外部先fit后,参数pre_fit置False
参数:kwargs – 装饰器使用的fiter_type,eg:iris_abu.predict_proba(test_input, fiter_type=ml.EMLFitType.E_FIT_CLF)
返回:eg: array([[ 0.2, 0.3, 0.5]])
predict_proba_threshold(x, threshold, default_ret, pre_fit=True, **kwargs)[源代码]
eg:

in: ttn_abu = AbuML.create_test_more_fiter() in: ttn_abu.estimator.svc(probability=True) in: ttn_abu.search_match_pos_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF) out: 0.770 satisfy require, accuracy:0.850, effect_rate:0.854

即通过search_match_pos_threshold获取了predict_proba的二分阀值为0.77时,分类的正确率达到0.85, 且覆盖80%样本

in: test = np.array([ 1. , 0. , 0. , 1. , 1. , 0. , 0. ,1. , 0. , 1.
, 0. , 0. , 0.8132, 0.5868])

in: ttn_abu.predict_proba(test) out: array([[ 0.106, 0.894]]) 使用predict_proba得到的是分类的概率

in: ttn_abu.predict_proba_threshold(test, threshold=0.77 ,default_ret=0) out: 1 使用predict_proba_threshold将阀值threshold设定0.77后,可以得到输出为1,即概率 0.894 > 0.77, 标签1分类成立

in: test2 = np.array([ 0. , 1. , 1. , 0. , 1. , 1. , 0. ,1. , 0. , 0.
, 0. , 1. , 0.7832, 0.2868])

in: ttn_abu.predict_proba(test2) out: array([[ 0.2372, 0.7628]])

in: ttn_abu.predict_proba_threshold(test2, threshold=0.77 ,default_ret=0) out: 0 对test2做predict_proba_threshold返回0,因为0.7628 < 0.77, 标签1的分类不成立,返回default_ret

应用场景:比如对交易进行拦截,实行高放行率,低拦截率,0代表放行,1代表拦截,
上述predict_proba_threshold(test2, threshold=0.77 ,default_ret=0) 即可实行对较大概率的交易进行拦截,即把握大的进行拦截,把握不大的默认选择放行
参数:
  • x – 在predict_proba中通过params_to_numpy装饰统一转换numpy
  • threshold – 对predict_proba结果进行二值化的阀值 eg: threshold=0.77
  • default_ret

    使用predict_proba返回的矢量和不等于1时,即没有进行有效投票时返回的值: eg:

    proba = np.where(proba >= threshold, 1, 0) if proba.sum() != 1:
    # eg: proba = array([[ 0.2328, 0.7672]])->array([[0, 0]]) return default_ret
  • pre_fit – bool,默认pre_fit True, 代表每次predict前先fit, 如在乎效率的情况下,需要在外部先fit后,参数pre_fit置False
  • kwargs

    装饰器使用的fiter_type, eg:iris_abu.predict_proba_threshold(test_input, , threshold=0.77 ,default_ret=0

    fiter_type=ml.EMLFitType.E_FIT_CLF)
返回:

int,default_ret or proba.argmax()

random_forest_classifier_best(**kwargs)[源代码]
eg:

random_forest_classifier_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘n_estimators’: np.arange(50, 200, 20)} ttn_abu.random_forest_classifier_best(param_grid=param_grid, n_jobs=-1)

out: RandomForestClassifier(max_features=’sqrt’, n_estimators=190)

random_forest_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.random_forest_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],
‘n_estimators’: np.arange(10, 150, 15)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的RandomForestClassifier对象
random_forest_regressor_best(**kwargs)[源代码]
eg:

random_forest_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.random_forest_regressor_best()

random_forest_regressor_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘n_estimators’: np.arange(10, 150, 15)} ttn_abu.random_forest_regressor_best(param_grid=param_grid, n_jobs=-1)

out: RandomForestRegressor(max_features=’log2’, n_estimators=115)

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],
‘n_estimators’: np.arange(10, 150, 15)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的RandomForestRegressor对象
search_match_neg_threshold(accuracy_match=0, effect_rate_match=0, neg_num=50, **kwargs)[源代码]

套接self.cross_val_prob_accuracy_score,通过np.linspace(0.01, 0.50, num=neg_num)[::-1]生成 pb_threshold参数序列,这里linspace的start从0.01至0.50后[::-1]倒序,依次迭代生成的阀值参数 ,当cross_val_prob_accuracy_score返回的正确率大于 参数中accuracy_match且返回的生效率大于参数中的effect_rate_match, 匹配寻找成功,中断迭代操作,返回寻找到的满足条件的阀值,返回的阀值应用场景阅读predict_proba_threshold函数

eg:
in: ttn_abu.search_match_neg_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF) out: 0.220 satisfy require, accuracy:0.852, effect_rate:0.844
参数:
  • accuracy_match – 寻找阀值条件,需要当cross_val_prob_accuracy_score返回的正确率大于accuracy_match, float, 范围(0-1),默认值0
  • effect_rate_match – 寻找阀值条件,需要当cross_val_prob_accuracy_score返回的生效率大于effect_rate_match, float, 范围(0-1),默认值0
  • neg_num – 透传neg_thresholds = np.linspace(0.01, 0.50, num=neg_num)[::-1]的参数,默认50
  • kwargs – 装饰器使用的fiter_type, eg: iris_abu.search_match_neg_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF)
返回:

返回寻找到的满足条件的阀值,float

search_match_pos_threshold(accuracy_match=0, effect_rate_match=0, pos_num=50, **kwargs)[源代码]

套接self.cross_val_prob_accuracy_score,通过np.linspace(0.50, 0.99, num=neg_num)生成 pb_threshold参数序列,这里linspace的start从0.50至0.99正序,依次迭代生成的阀值参数 ,当cross_val_prob_accuracy_score返回的正确率大于 参数中accuracy_match且返回的生效率大于参数中的effect_rate_match, 匹配寻找成功,中断迭代操作,返回寻找到的满足条件的阀值,返回的阀值应用场景阅读predict_proba_threshold函数

eg:
in: ttn_abu.search_match_pos_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF) out: 0.770 satisfy require, accuracy:0.850, effect_rate:0.854
参数:
  • accuracy_match – 寻找阀值条件,需要当cross_val_prob_accuracy_score返回的正确率大于accuracy_match, float, 范围(0-1),默认值0
  • effect_rate_match – 寻找阀值条件,需要当cross_val_prob_accuracy_score返回的生效率大于effect_rate_match, float, 范围(0-1),默认值0
  • pos_num – 透传neg_thresholds = np.linspace(0.50, 0.99, num=neg_num)的参数,默认50
  • kwargs – 装饰器使用的fiter_type, eg: iris_abu.search_match_pos_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF)
返回:

返回寻找到的满足条件的阀值,float

train_test_split_df(test_size=0.1, random_state=0, **kwargs)[源代码]

套接封装train_test_split_xy,外部传递pd.DataFrame参数时使用 :param test_size: 透传参数train_test_split_xy :param random_state: 透传参数train_test_split_xy :param kwargs: 通过 df = kwargs.pop(‘df’, self.df)弹出传递的pd.DataFrame对象进行x,y分解

y = matrix[:, 0],即硬编码分类y在第一列,外部传递的df对象需要遵循 以及装饰器使用的fiter_type,eg:ttn_abu.train_test_split_df(fiter_type=ml.EMLFitType.E_FIT_CLF)
train_test_split_xy(test_size=0.1, random_state=0, **kwargs)[源代码]

被entry_wrapper(support=(EMLFitType.E_FIT_CLF, ))装饰,即只支持分类 首先使用train_test_split将x,y根据参数test_size切割训练集和测试集, 显示数据集,训练集,测试集的数量,针对训练集数据进行训练,使用训练好的 分类器对测试集x进行predict,对结果分别使用metrics.accuracy_score, metrics.precision_score, metrics.recall_score度量准确率,查准率, 和召回率,多label的的情况下使用average = ‘macro’对precision_score和 recall_score进行度量,最后显示分类结果混淆矩阵以及metrics.classification_report 情况

eg:

x-y:(891, 14)-(891,) train_x-train_y:(801, 14)-(801,) test_x-test_y:(90, 14)-(90,) accuracy = 0.77 precision_score = 0.74 recall_score = 0.72

Predicted
0 | 1 |

|—–|—–|

0 | 41 | 10 |

Actual |—–|—–|
1 | 11 | 28 |
|—–|—–|
precision recall f1-score support

0.0 0.79 0.80 0.80 51 1.0 0.74 0.72 0.73 39

avg / total 0.77 0.77 0.77 90

参数:
  • test_size – 测试集占比例,float,默认0.1,即将数据分10份,一份做为测试集
  • random_state – 透传给train_test_split的随机参数
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    以及装饰器使用的fiter_type,eg:ttn_abu.train_test_split_xy(fiter_type=ml.EMLFitType.E_FIT_CLF)

xgb_classifier_best(**kwargs)[源代码]
eg:

xgb_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05), ‘n_estimators’: np.arange(50, 200, 10)} ttn_abu.xgb_classifier_best(param_grid=param_grid, n_jobs=-1)

out: GradientBoostingClassifier(learning_rate=0.1, n_estimators=160) xgb_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.xgb_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05),
‘n_estimators’: np.arange(50, 200, 10)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的GradientBoostingClassifier对象
xgb_regressor_best(**kwargs)[源代码]
eg:

xgb_regressor_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.xgb_regressor_best(param_grid=param_grid, n_jobs=-1)

out: GradientBoostingRegressor(learning_rate=0.2, n_estimators=70)

xgb_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.xgb_regressor_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05),
‘n_estimators’: np.arange(10, 100, 10)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的GradientBoostingRegressor对象
class abupy.MLBu.ABuML.EMLFitType[源代码]

Bases: enum.Enum

支持常使用的学习器类别enum

E_FIT_AUTO = 'auto'

有监督学习:回归

E_FIT_CLF = 'clf'

无监督学习:HMM

E_FIT_HMM = 'hmm'

无监督学习:PCA

E_FIT_KMEAN = 'kmean'
E_FIT_PCA = 'pca'

无监督学习:KMEAN

E_FIT_REG = 'reg'

有监督学习:分类

abupy.MLBu.ABuML.entry_wrapper(support=(<EMLFitType.E_FIT_CLF: 'clf'>, <EMLFitType.E_FIT_REG: 'reg'>, <EMLFitType.E_FIT_HMM: 'hmm'>, <EMLFitType.E_FIT_PCA: 'pca'>, <EMLFitType.E_FIT_KMEAN: 'kmean'>))[源代码]

类装饰器函数,对关键字参数中的fiter_type进行标准化,eg,fiter_type参数是’clf’, 转换为EMLFitType(fiter_type) 赋予self.fiter_type,检测当前使用的具体学习器不在support参数中不执行被装饰的func函数了,打个log返回

参数:support
默认 support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG, EMLFitType.E_FIT_HMM,
EMLFitType.E_FIT_PCA, EMLFitType.E_FIT_KMEAN)

即支持所有,被装饰的函数根据自身特性选择装饰参数

abupy.MLBu.ABuMLApi module

abupy.MLBu.ABuMLBinsCs module

直观可视化制作qcut的bins点

abupy.MLBu.ABuMLBinsCs.show_orders_hist(df, feature_columns, show=True, only_hist=True, show_pie=False)[源代码]

可视化统计feature_columns序列所指定的特征在df中的直方图或者饼状图, 根据参数only_hist是否进行pd.qcut统计输出

eg:
from abupy import AbuML, ml ttn_raw = AbuML.load_ttn_raw_df() ml.show_orders_hist(ttn_raw, [‘Age’, ‘Fare’, ‘Pclass’])
参数:
  • df – pd.DataFrame对象
  • feature_columns – 特征名称序列,eg:[‘Age’, ‘Fare’, ‘Pclass’]
  • show – 是否可视化直方图或者饼状图
  • show_pie – 是否优先考虑绘制饼状图,默认false
  • only_hist – 是否进行pd.qcut统计输出

abupy.MLBu.ABuMLCreater module

封装常用学习器的初始化流程的模块

class abupy.MLBu.ABuMLCreater.AbuMLCreater[源代码]

Bases: object

封装常用有简单和无监督学习器实例化类

adaboost_classifier(assign=True, base_estimator=DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None, max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter='best'), **kwargs)[源代码]
有监督学习分类器,实例化AdaBoostClassifier,默认使用:
AdaBoostClassifier(base_estimator=base_estimator, n_estimators=100, random_state=1)
通过**kwargs即关键字参数透传AdaBoostClassifier,即:
AdaBoostClassifier(**kwargs)
参数:
  • base_estimator – 默认使用DecisionTreeClassifier()
  • assign – 是否保存实例后的AdaBoostClassifier对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: AdaBoostClassifier(**kwargs) 无参数情况下初始化: AdaBoostClassifier(n_estimators=100, random_state=1)
返回:

实例化的AdaBoostClassifier对象

adaboost_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找AdaBoostClassifier构造器的最优参数

上层AbuML中adaboost_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

adaboost_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.adaboost_classifier_best()

adaboost_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.adaboost_classifier_best(param_grid=param_grid, n_jobs=-1)

out: AdaBoostClassifier(learning_rate=0.6, n_estimators=70)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2),

    ‘n_estimators’: np.arange(10, 100, 10)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的AdaBoostClassifier对象

adaboost_regressor(assign=True, base_estimator=DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter='best'), **kwargs)[源代码]
有监督学习回归器,实例化AdaBoostRegressor,默认使用:
AdaBoostRegressor(base_estimator=base_estimator, n_estimators=100, random_state=1)
通过**kwargs即关键字参数透传AdaBoostRegressor,即:
AdaBoostRegressor(**kwargs)
参数:
  • base_estimator – 默认使用DecisionTreeRegressor()
  • assign – 是否保存实例后的AdaBoostRegressor对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: AdaBoostRegressor(**kwargs) 无参数情况下初始化: AdaBoostRegressor(n_estimators=100, random_state=1)
返回:

实例化的AdaBoostRegressor对象

adaboost_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找AdaBoostRegressor构造器的最优参数

上层AbuML中adaboost_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

adaboost_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.adaboost_regressor_best()

adaboost_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.adaboost_regressor_best(param_grid=param_grid, n_jobs=-1)

out: AdaBoostRegressor(learning_rate=0.8, n_estimators=40)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2),

    ‘n_estimators’: np.arange(10, 100, 10)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的AdaBoostRegressor对象

bagging_classifier(assign=True, base_estimator=DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None, max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter='best'), **kwargs)[源代码]
有监督学习分类器,实例化BaggingClassifier,默认使用:
BaggingClassifier(base_estimator=base_estimator, n_estimators=200,
bootstrap=True, oob_score=True, random_state=1)
通过**kwargs即关键字参数透传BaggingClassifier,即:
BaggingClassifier(**kwargs)
参数:
  • base_estimator – 默认使用DecisionTreeClassifier()
  • assign – 是否保存实例后的BaggingClassifier对象,默认True,self.clf = clf
  • kwargs

    有参数情况下初始化: BaggingClassifier(**kwargs) 无参数情况下初始化: BaggingClassifier(base_estimator=base_estimator, n_estimators=200,

    bootstrap=True, oob_score=True, random_state=1)
返回:

实例化的BaggingClassifier对象

bagging_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找BaggingClassifier构造器的最优参数 上层AbuML中bagging_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

bagging_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.bagging_classifier_best()

bagging_classifier_best有param_grid参数调用:

param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)} ttn_abu.bagging_classifier_best(param_grid=param_grid, n_jobs=-1)

out: BaggingClassifier(max_samples=4, n_estimators=100)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid – 最优字典关键字参数, eg:param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的BaggingClassifier对象

bagging_regressor(assign=True, base_estimator=DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter='best'), **kwargs)[源代码]
有监督学习回归器,实例化BaggingRegressor,默认使用:
BaggingRegressor(base_estimator=base_estimator, n_estimators=200,
bootstrap=True, oob_score=True, random_state=1)
通过**kwargs即关键字参数透传BaggingRegressor,即:
BaggingRegressor(**kwargs)
参数:
  • base_estimator – 默认使用DecisionTreeRegressor()
  • assign – 是否保存实例后的BaggingRegressor对象,默认True,self.reg = reg
  • kwargs

    有参数情况下初始化: BaggingRegressor(**kwargs) 无参数情况下初始化: BaggingRegressor(base_estimator=base_estimator, reg_core, n_estimators=200,

    bootstrap=True, oob_score=True, random_state=1)
返回:

实例化的BaggingRegressor对象

bagging_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找BaggingRegressor构造器的最优参数 上层AbuML中bagging_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

bagging_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.bagging_regressor_best()

bagging_regressor_best有param_grid参数调用:

param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)} ttn_abu.bagging_regressor_best(param_grid=param_grid, n_jobs=-1)

out: BaggingRegressor(max_samples=4, n_estimators=250)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid – 最优字典关键字参数, eg:param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的BaggingRegressor对象

decision_tree_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化DecisionTreeClassifier,默认使用:
DecisionTreeClassifier(max_depth=2, random_state=1)
通过**kwargs即关键字参数透传DecisionTreeClassifier,即:
DecisionTreeClassifier(**kwargs)
参数:
  • assign – 是否保存实例后的DecisionTreeClassifier对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: DecisionTreeClassifier(**kwargs) 无参数情况下初始化: DecisionTreeClassifier(max_depth=2, random_state=1)
返回:

实例化的DecisionTreeClassifier对象

decision_tree_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找DecisionTreeClassifier构造器的最优参数

上层AbuML中decision_tree_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

decision_tree_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.decision_tree_classifier_best()

decision_tree_classifier_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘max_depth’: np.arange(1, 10, 1)} ttn_abu.decision_tree_classifier_best(param_grid=param_grid, n_jobs=-1)

out: DecisionTreeClassifier(max_features=’sqrt’, max_depth=7)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],

    ‘n_estimators’: np.arange(50, 200, 20)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的DecisionTreeClassifier对象

decision_tree_regressor(assign=True, **kwargs)[源代码]
有监督学习回归器,实例化DecisionTreeRegressor,默认使用:
DecisionTreeRegressor(max_depth=2, random_state=1)
通过**kwargs即关键字参数透传DecisionTreeRegressor,即:
DecisionTreeRegressor(**kwargs)
参数:
  • assign – 是否保存实例后的DecisionTreeRegressor对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: DecisionTreeRegressor(**kwargs) 无参数情况下初始化: DecisionTreeRegressor(max_depth=2, random_state=1)
返回:

实例化的DecisionTreeRegressor对象

decision_tree_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找DecisionTreeRegressor构造器的最优参数

上层AbuML中decision_tree_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

decision_tree_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.decision_tree_regressor_best()

decision_tree_regressor_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘max_depth’: np.arange(1, 10, 1)} ttn_abu.decision_tree_regressor_best(param_grid=param_grid, n_jobs=-1)

out: DecisionTreeRegressor(max_features=’sqrt’, max_depth=3)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],

    ‘n_estimators’: np.arange(50, 200, 20)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的DecisionTreeRegressor对象

hmm_gaussian(assign=True, **kwargs)[源代码]

无监督学习器,实例化GMM,默认使用GMM(n_components=2),通过**kwargs即 关键字参数透传GMM,即GMM(**kwargs)

导入模块使用
try:
from hmmlearn.hmm import GaussianHMM as GMM
except ImportError:
from ..CoreBu.ABuFixes import GMM

即优先选用hmmlearn中的GaussianHMM,没有安装的情况下使用sklearn中的GMM

参数:
  • assign – 是否保存实例后的hmm对象,默认True,self.hmm = hmm
  • kwargs – 有参数情况下初始化: GMM(**kwargs) 无参数情况下初始化: GMM(n_components=2)
返回:

实例化的GMM对象

kmean_cluster(assign=True, **kwargs)[源代码]

无监督学习器,实例化KMeans,默认使用KMeans(n_clusters=2, random_state=0), 通过**kwargs即关键字参数透传KMeans,即KMeans(**kwargs)

参数:
  • assign – 是否保存实例后的kmean对象,默认True,self.kmean = kmean
  • kwargs – 有参数情况下初始化: KMeans(**kwargs) 无参数情况下初始化: KMeans(n_clusters=2, random_state=0)
返回:

实例化的KMeans对象

knn_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化KNeighborsClassifier,默认使用:
KNeighborsClassifier(n_neighbors=1)
通过**kwargs即关键字参数透传KNeighborsClassifier,即:
KNeighborsClassifier(**kwargs)
参数:
  • assign – 是否保存实例后的KNeighborsClassifier对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: KNeighborsClassifier(**kwargs) 无参数情况下初始化: KNeighborsClassifier(n_neighbors=1)
返回:

实例化的KNeighborsClassifier对象

knn_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找KNeighborsClassifier构造器的最优参数

上层AbuML中knn_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

knn_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.knn_classifier_best()

knn_classifier_best有param_grid参数调用:

param_grid = {‘algorithm’: [‘ball_tree’, ‘kd_tree’, ‘brute’], ‘n_neighbors’: np.arange(1, 26, 1)} ttn_abu.knn_classifier_best(param_grid=param_grid, n_jobs=-1)

out: KNeighborsClassifier(algorithm=’ball_tree’, n_neighbors=14)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘algorithm’: [‘ball_tree’, ‘kd_tree’, ‘brute’],

    ‘n_neighbors’: np.arange(1, 26, 1)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的KNeighborsClassifier对象

linear_regression(assign=True, **kwargs)[源代码]
有监督学习回归器,实例化LinearRegression,默认使用:
LinearRegression()
通过**kwargs即关键字参数透传LinearRegression,即:
LinearRegression(**kwargs)
参数:
  • assign – 是否保存实例后的LinearRegression对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: LinearRegression(**kwargs) 无参数情况下初始化: LinearRegression()
返回:

实例化的LinearRegression对象

logistic_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化LogisticRegression,默认使用:
LogisticRegression(C=1.0, penalty=’l1’, tol=1e-6)
通过**kwargs即关键字参数透传LogisticRegression,即:
LogisticRegression(**kwargs)
参数:
  • assign – 是否保存实例后的LogisticRegression对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: LogisticRegression(**kwargs) 无参数情况下初始化: LogisticRegression(C=1.0, penalty=’l1’, tol=1e-6)
返回:

实例化的LogisticRegression对象

onevsone_classifier(assign=False, **kwargs)[源代码]

封装有监督学习分类器,使用OneVsOneClassifier进行多label的 分类器二次封装,即:

OneVsOneClassifier(self.clf, **kwargs)
参数:
  • assign – 是否保存实例后的二次封装分类器对象,与其它构造器不同, 默认False,即默认不保存在类中替换原始分类器
  • kwargs – 透传OneVsOneClassifier做为构造关键字参数
返回:

OneVsOneClassifier对象

onevsreset_classifier(assign=False, **kwargs)[源代码]

封装有监督学习分类器,使用OneVsRestClassifier进行多label的 分类器二次封装,即:

OneVsRestClassifier(self.clf, **kwargs)
参数:
  • assign – 是否保存实例后的二次封装分类器对象,与其它构造器不同, 默认False,即默认不保存在类中替换原始分类器
  • kwargs – 透传OneVsRestClassifier做为构造关键字参数
返回:

OneVsRestClassifier对象

pca_decomposition(assign=True, **kwargs)[源代码]

无监督学习器,实例化PCA,默认使用pca = PCA(0.95),通过**kwargs即 关键字参数透传PCA,即PCA(**kwargs)

参数:
  • assign – 是否保存实例后的PCA对象,默认True,self.pca = pca
  • kwargs – 有参数情况下初始化: PCA(**kwargs) 无参数情况下初始化: pca = PCA(0.95)
返回:

实例化的PCA对象

polynomial_regression(assign=True, degree=2, **kwargs)[源代码]
有监督学习回归器,使用:
make_pipeline(PolynomialFeatures(degree), LinearRegression(**kwargs))
参数:
  • assign – 是否保存实例后的LinearRegression对象,默认True,self.reg = reg
  • degree – 多项式拟合参数,默认2
  • kwargs – 由make_pipeline(PolynomialFeatures(degree), LinearRegression(**kwargs)) 即关键字参数**kwargs全部传递给LinearRegression做为构造参数
返回:

实例化的回归对象

random_forest_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化RandomForestClassifier,默认使用:
RandomForestRegressor(n_estimators=100)
通过**kwargs即关键字参数透传RandomForestRegressor,即:
RandomForestRegressor(**kwargs)
参数:
  • assign – 是否保存实例后的RandomForestRegressor对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: RandomForestRegressor(**kwargs) 无参数情况下初始化: RandomForestRegressor(n_estimators=100)
返回:

实例化的RandomForestRegressor对象

random_forest_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找RandomForestClassifier构造器的最优参数

上层AbuML中random_forest_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

random_forest_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.random_forest_classifier_best()

random_forest_classifier_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘n_estimators’: np.arange(50, 200, 20)} ttn_abu.random_forest_classifier_best(param_grid=param_grid, n_jobs=-1)

out: RandomForestClassifier(max_features=’sqrt’, n_estimators=190)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],

    ‘n_estimators’: np.arange(50, 200, 20)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的RandomForestClassifier对象

random_forest_regressor(assign=True, **kwargs)[源代码]
有监督学习回归器,实例化RandomForestRegressor,默认使用:
RandomForestRegressor(n_estimators=100)
通过**kwargs即关键字参数透传RandomForestRegressor,即:
RandomForestRegressor(**kwargs)
参数:
  • assign – 是否保存实例后的RandomForestRegressor对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: RandomForestRegressor(**kwargs) 无参数情况下初始化: RandomForestRegressor(n_estimators=100)
返回:

实例化的RandomForestRegressor对象

random_forest_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找RandomForestRegressor构造器的最优参数

上层AbuML中random_forest_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

random_forest_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.random_forest_regressor_best()

random_forest_regressor_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘n_estimators’: np.arange(10, 150, 15)} ttn_abu.random_forest_regressor_best(param_grid=param_grid, n_jobs=-1)

out: RandomForestRegressor(max_features=’sqrt’, n_estimators=115)
参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],

    ‘n_estimators’: np.arange(10, 150, 15)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的RandomForestRegressor对象

svc(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化SVC,默认使用:
SVC(kernel=’rbf’, probability=True)
通过**kwargs即关键字参数透传SVC,即:
SVC(**kwargs)
参数:
  • assign – 是否保存实例后的RandomForestRegressor对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: SVC(**kwargs) 无参数情况下初始化: SVC(kernel=’rbf’, probability=True)
返回:

实例化的SVC对象

xgb_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,默认使用:
GBC(n_estimators=100)
通过**kwargs即关键字参数透传GBC(**kwargs),即:
GBC(**kwargs)
注意导入使用:
try:
from xgboost.sklearn import XGBClassifier as GBC
except ImportError:
from sklearn.ensemble import GradientBoostingClassifier as GBC
参数:
  • assign – 是否保存实例后的分类器对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: GBC(n_estimators=100) 无参数情况下初始化: GBC(**kwargs)
返回:

实例化的GBC对象

xgb_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找GradientBoostingClassifier构造器的最优参数

上层AbuML中xgb_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

xgb_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.xgb_classifier_best()

xgb_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05), ‘n_estimators’: np.arange(50, 200, 10)} ttn_abu.xgb_classifier_best(param_grid=param_grid, n_jobs=-1)

out: GradientBoostingClassifier(learning_rate=0.1, n_estimators=160)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05),

    ‘n_estimators’: np.arange(50, 200, 10)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的GradientBoostingClassifier对象

xgb_regressor(assign=True, **kwargs)[源代码]
有监督学习回归器,默认使用:
GBR(n_estimators=100)
通过**kwargs即关键字参数透传GBR(**kwargs),即:
GBR(**kwargs)
注意导入使用:
try:
from xgboost.sklearn import XGBRegressor as GBR
except ImportError:
from sklearn.ensemble import GradientBoostingRegressor as GBR
参数:
  • assign – 是否保存实例后的回归器对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: GBR(n_estimators=100) 无参数情况下初始化: GBR(**kwargs)
返回:

实例化的GBR对象

xgb_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找GradientBoostingRegressor构造器的最优参数

上层AbuML中xgb_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

xgb_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.xgb_regressor_best()

xgb_regressor_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.xgb_regressor_best(param_grid=param_grid, n_jobs=-1)

out: GradientBoostingRegressor(learning_rate=0.2, n_estimators=70)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05),

    ‘n_estimators’: np.arange(10, 100, 10)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的GradientBoostingRegressor对象

abupy.MLBu.ABuMLExecute module

封装常用的分析方式及流程模块

abupy.MLBu.ABuMLExecute.run_silhouette_cv_estimator(estimator, x, n_folds=10)[源代码]

只针对kmean的cv验证,使用silhouette_score对聚类后的结果labels_ 进行度量使用silhouette_score,kmean的cv验证只是简单的通过np.random.choice 进行随机筛选x数据进行聚类的silhouette_score度量,并不涉及训练集测试集 :param estimator: keman或者支持estimator.labels_, 只通过if not isinstance(estimator, ClusterMixin)进行过滤 :param x: x特征矩阵 :param n_folds: int,透传KFold参数,切割训练集测试集参数,默认10 :return: eg: array([ 0.693 , 0.652 , 0.6845, 0.6696, 0.6732, 0.6874, 0.668 ,

0.6743, 0.6748, 0.671 ])
abupy.MLBu.ABuMLExecute.run_prob_cv_estimator(estimator, x, y, n_folds=10)[源代码]

通过KFold和参数n_folds拆分训练集和测试集,使用 np.zeros((len(y), len(np.unique(y))))初始化prob矩阵, 通过训练estimator.fit(x_train, y_train)后的分类器使用 predict_proba将y_prob中的对应填数据

参数:
  • estimator – 支持predict_proba的有监督学习, 只通过hasattr(estimator, ‘predict_proba’)进行过滤
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • n_folds – int,透传KFold参数,切割训练集测试集参数,默认10
返回:

eg: y_prob array([[ 0.8726, 0.1274],

[ 0.0925, 0.9075], [ 0.2485, 0.7515], ..., [ 0.3881, 0.6119], [ 0.7472, 0.2528], [ 0.8555, 0.1445]])

abupy.MLBu.ABuMLExecute.run_cv_estimator(estimator, x, y, n_folds=10)[源代码]

通过KFold和参数n_folds拆分训练集和测试集,使用 y.copy()初始化y_pred矩阵,迭代切割好的训练集与测试集, 不断通过 estimator.predict(x_test)将y_pred中的值逐步替换

参数:
  • estimator – 有监督学习器对象
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • n_folds – int,透传KFold参数,切割训练集测试集参数,默认10
返回:

y_pred序列

abupy.MLBu.ABuMLExecute.plot_learning_curve(estimator, x, y, cv=5, n_jobs=1, train_sizes=array([ 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1. ]))[源代码]

绘制学习曲线,train_sizes使用np.linspace(.05, 1., 20)即训练集从5%-100%递进

np.linspace(.05, 1., 20) array([ 0.05, 0.1 , 0.15, 0.2 , 0.25, 0.3 , 0.35, 0.4 , 0.45,

0.5 , 0.55, 0.6 , 0.65, 0.7 , 0.75, 0.8 , 0.85, 0.9 , 0.95, 1. ])

套接sklern中learning_curve函数,传递estimator,cv等参数

参数:
  • estimator – 学习器对象,透传learning_curve
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • cv – 透传learning_curve,cv参数,默认5,int
  • n_jobs – 透传learning_curve,并行进程数,默认1,即使用单进程执行
  • train_sizes – train_sizes使用np.linspace(.05, 1., 20)即训练集从5%-100%递进
abupy.MLBu.ABuMLExecute.plot_decision_boundary(pred_func, x, y)[源代码]

通过x,y以构建meshgrid平面区域,要x矩阵特征列只有两个维度,在区域中使用外部传递的 pred_func函数进行z轴的predict,通过contourf绘制特征平面区域,最后使用 plt.scatter(x[:, 0], x[:, 1], c=y, cmap=plt.cm.Spectral)在平面区域上填充原始特征 点

参数:
  • pred_func – callable函数,eg:pred_func: lambda p_x: fiter.predict(p_x), x, y
  • x – 训练集x矩阵,numpy矩阵,需要特征列只有两个维度
  • y – 训练集y序列,numpy序列
abupy.MLBu.ABuMLExecute.plot_confusion_matrices(estimator, x, y, n_folds=10)[源代码]

套接run_cv_estimator进行通过参数n_folds进行训练集测试集拆封 使用y_pred和y做为参数,透传给metrics.confusion_matrix函数 进行混淆矩阵的计算,通过ax.matshow可视化混淆矩阵

参数:
  • estimator – 分类器对象,内部clone(estimator)
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • n_folds – 透传KFold参数,切割训练集测试集参数
abupy.MLBu.ABuMLExecute.plot_roc_estimator(estimator, x, y, pos_label=None)[源代码]

固定n_folds=10通过kf = KFold(len(y), n_folds=10, shuffle=True)拆分 训练测试集,使用estimator.predict_proba对测试集数据进行概率统计,直接使用 sklearn中的roc_curve分别对多组测试集计算fpr, tpr, thresholds,并计算roc_auc 最后绘制roc_auc曲线进行可视化操作

参数:
  • estimator – 分类器对象,内部clone(estimator)
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • pos_label – 对y大于2个label的数据,roc_curve需要指定pos_label,如果不指定,默认使用y的第一个label值
abupy.MLBu.ABuMLExecute.graphviz_tree(estimator, features, x, y)[源代码]

绘制决策树或者core基于树的分类回归算法的决策示意图绘制,查看 学习器本身hasattr(fiter, ‘tree_‘)是否有tree_属性,内部clone(estimator)学习器 后再进行训练操作,完成训练后使用sklearn中tree.export_graphvizd导出graphviz.dot文件 需要使用第三方dot工具将graphviz.dot进行转换graphviz.png,即内部实行使用 运行命令行:

os.system(“dot -T png graphviz.dot -o graphviz.png”)

最后读取决策示意图显示

参数:
  • estimator – 学习器对象,透传learning_curve
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • features – 训练集x矩阵列特征所队员的名称,可迭代序列对象
abupy.MLBu.ABuMLExecute.visualize_tree(estimator, x, y, boundaries=True)[源代码]

需要x矩阵特征列只有两个维度,根据x,y,通过meshgrid构造训练集平面特征 通过z = estimator.predict(np.c_[xx.ravel(), yy.ravel()])对特征平面 进行predict生成z轴,可视化meshgrid构造训练集平面特征使用生成的z生成 pcolormesh进行可视化

参数:
  • estimator – 学习器对象,内部clone(estimator)
  • x – 训练集x矩阵,numpy矩阵,需要特征列只有两个维度
  • y – 训练集y序列,numpy序列
  • boundaries – 是否绘制决策边界

abupy.MLBu.ABuMLGrid module

封装grid search相关操作模块

abupy.MLBu.ABuMLGrid.grid_search_init_kwargs(estimator, x, y, param_name, param_range, cv=10, n_jobs=-1, scoring=None, show=True)[源代码]
对GridSearchCV进行封装,对单个目标关键字参数进行grid search最优参数搜寻
eg:’n_estimators’, ‘max_depth’ eg:param_range=np.arange(100, 500, 50))对最优参数进行寻找
eg:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.estimator.random_forest_classifier() ml.grid_search_init_kwargs(ttn_abu.estimator.clf, ttn_abu.x, ttn_abu.y,

param_name=’n_estimators’, param_range=np.arange(100, 500, 50))

可找到n_estimators参数最优为:(0.81930415263748602, {‘n_estimators’: 300})

参数:
  • estimator – 学习器对象
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_name – 做为grid的目标关键字参数,eg:’n_estimators’, ‘max_depth’
  • param_range – 做为grid的目标关键字参数的grid序列,eg:param_range=np.arange(100, 500, 50))
  • cv – int,GridSearchCV切割训练集测试集参数,默认10
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • scoring – 测试集的度量方法,默认为None, None的情况下分类器使用accuracy进行度量, 回归器使用可释方差值explained_variance_score,使用make_scorer对函数进行score封装
  • show – 是否进行可视化
返回:

eg:(0.81930415263748602, {‘n_estimators’: 300})

abupy.MLBu.ABuMLGrid.grid_search_mul_init_kwargs(estimator, x, y, param_grid, cv=10, n_jobs=-1, scoring=None, show=True)[源代码]

对GridSearchCV进行封装,对多个目标关键字参数进行grid search最优参数搜寻

eg:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.estimator.random_forest_classifier()

param_grid = {‘max_depth’: np.arange(2, 5), ‘n_estimators’: np.arange(100, 300, 50)} ml.grid_search_mul_init_kwargs(ttn_abu.estimator.clf, ttn_abu.x, ttn_abu.y, param_grid=param_grid)

out: (0.81593714927048255, {‘max_depth’: 4, ‘n_estimators’: 250})

参数:
  • estimator – 学习器对象
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid – eg:param_grid = {‘max_depth’: np.arange(2, 5), ‘n_estimators’: np.arange(100, 300, 50)}
  • cv – int,GridSearchCV切割训练集测试集参数,默认10
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • scoring – 测试集的度量方法,默认为None, None的情况下分类器使用accuracy进行度量, 回归器使用可释方差值explained_variance_score,使用make_scorer对函数进行score封装
  • show – 是否进行可视化
返回:

eg: (0.81593714927048255, {‘max_depth’: 4, ‘n_estimators’: 250})

abupy.MLBu.ABuMLGrid.grid_search_init_n_estimators(estimator, x, y, n_estimators_range=None, cv=10, n_jobs=-1, scoring=None, show=True)[源代码]

封装grid search特定的’n_estimators’关键字参数最优搜索, 为AbuMLCreater中_estimators_prarms_best提供callback函数,

具体阅读
AbuMLCreater._estimators_prarms_best() + AbuMLCreater.random_forest_classifier_best()
eg:
from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.estimator.random_forest_classifier() ml.grid_search_init_n_estimators(ttn_abu.estimator.clf, ttn_abu.x, ttn_abu.y)
参数:
  • estimator – 学习器对象
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • n_estimators_range – 默认None, None则会使用 n_estimators_range = np.arange(50, 500, 10)
  • cv – int,GridSearchCV切割训练集测试集参数,默认10
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • scoring – 测试集的度量方法,默认为None, None的情况下分类器使用accuracy进行度量, 回归器使用可释方差值explained_variance_score,使用make_scorer对函数进行score封装
  • show – 是否进行可视化
返回:

eg: (0.82154882154882158, {‘n_estimators’: 310})

abupy.MLBu.ABuMLGrid.grid_search_init_n_components(estimator, x, y, n_components_range=None, cv=10, n_jobs=-1, scoring=None, show=True)[源代码]

封装grid search特定的’n_components’关键字参数最优搜索, 为AbuMLCreater中_estimators_prarms_best提供callback函数, 具体阅读AbuMLCreater._estimators_prarms_best()

参数:
  • estimator – 学习器对象
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • n_components_range – 默认None, None则会使用: n_estimators_range = np.arange(2, np.maximum(10, int(x.shape[1]) - 1), 1)
  • cv – int,GridSearchCV切割训练集测试集参数,默认10
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • scoring – 测试集的度量方法,默认为None, None的情况下分类器使用accuracy进行度量,回归器使用 回归器使用可释方差值explained_variance_score,使用make_scorer对函数进行score封装
  • show – 是否进行可视化
返回:

eg: (0.82154882154882158, {‘n_components’: 10})

abupy.MLBu.ABuMLGrid.grid_search_init_max_depth(estimator, x, y, max_depth_range=None, cv=10, n_jobs=-1, scoring=None, show=True)[源代码]

封装grid search特定的’n_components’关键字参数最优搜索, 为AbuMLCreater中_estimators_prarms_best提供callback函数

具体阅读
AbuMLCreater._estimators_prarms_best() + AbuMLCreater.decision_tree_classifier_best()
参数:
  • estimator – 学习器对象
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • max_depth_range – 默认None, None则会使用: max_depth_range = np.arange(2, np.maximum(10, int(x.shape[1]) - 1), 1)
  • cv – int,GridSearchCV切割训练集测试集参数,默认10
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • scoring – 测试集的度量方法,默认为None, None的情况下分类器使用accuracy进行度量, 回归器使用可释方差值explained_variance_score,使用make_scorer对函数进行score封装
  • show – 是否进行可视化
返回:

eg: (0.82154882154882158, {‘max_depth’: 3})

abupy.MLBu.ABuMLGrid.grid_search_init_n_neighbors(estimator, x, y, n_neighbors_range=None, cv=10, n_jobs=-1, scoring=None, show=True)[源代码]

封装grid search特定的’n_components’关键字参数最优搜索, 为AbuMLCreater中_estimators_prarms_best提供callback函数

具体阅读
AbuMLCreater._estimators_prarms_best() + AbuMLCreater.knn_classifier_best()
参数:
  • estimator – 学习器对象
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • n_neighbors_range – 默认None, None则会使用: n_estimators_range = np.arange(2, np.maximum(10, int(x.shape[1]) - 1), 1)
  • cv – int,GridSearchCV切割训练集测试集参数,默认10
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • scoring – 测试集的度量方法,默认为None, None的情况下分类器使用accuracy进行度量, 回归器使用可释方差值explained_variance_score,使用make_scorer对函数进行score封装
  • show – 是否进行可视化
返回:

eg: (0.82154882154882158, {‘n_components’: 10})

abupy.MLBu.ABuMLPd module

封装AbuML为业务逻辑层进行规范模块

class abupy.MLBu.ABuMLPd.AbuMLPd(**kwarg)[源代码]

Bases: abc.NewBase

封装AbuML的上层具体业务逻辑类

make_xy(**kwarg)[源代码]

子类需要完成的abstractmethod方法,可以从**kwarg中得到数据 或者make_xy中本身生产数据,但在make_xy之后,类变量中一定要有 x,y和df

class abupy.MLBu.ABuMLPd.BtcBigWaveClf(**kwarg)[源代码]

Bases: abupy.MLBu.ABuMLPd.AbuMLPd

任何大的决策其实都是由很多看极起来极不起眼的小事组成的,如果我们是做比特币日内的交易者,首先你需要判断今天适不适合做交易, 做出这个判断的依据里有一条即是今天的波动需要足够大

btc_siblings_df(btc_raw)[源代码]
  • 首先将所有交易日以3个为一组,切割成多个子df,即每一个子df中有3个交易日的交易数据
  • 使用数据标准化将连续3天交易日中的连续数值特征进行标准化操作
  • 抽取第一天,第二天的大多数特征分别改名字以one,two为特征前缀,如:one_open,one_close,two_ma5,two_high.....,
  • 第三天的特征只使用’open’, ‘low’, ‘pre_close’, ‘date_week’,该名前缀today,如today_open,today_date_week
  • 第三天的抽取了’big_wave’,其将在之后做为y
  • 将抽取改名字后的特征连接起来组合成为一条新数据,即3天的交易数据特征->1条新的数据
参数:btc_raw – btc走势数据,pd.DataFrame对象
返回:重新组合好的特征数据,pd.DataFrame对象
make_xy(**kwarg)[源代码]
class abupy.MLBu.ABuMLPd.ClosePredict(**kwarg)[源代码]

Bases: abupy.MLBu.ABuMLPd.AbuMLPd

示例AbuMLPd基本使用:

获取usTSLA的沙盒测试数据,将收盘价格做为y, 开盘,最高,最低,昨收,周几组成x矩阵,通过 训练,预测收盘价格

make_xy(**kwarg)[源代码]

make_xy中读取usTSLA金融时间序列数据,使用’open’, ‘high’, ‘low’, ‘pre_close’, ‘date_week’ 做为特征列x,close即收盘价格为y,更多AbuMLPd使用阅读AbuUmpMainDeg等ump类实行

abupy.MLBu.ABuMLPd.test_close_predict()[源代码]

示例通过ClosePredict以及AbuMLPd的使用: eg:

from abupy.MLBu.ABuMLPd import test_close_predict test_close_predict()

Module contents

class abupy.MLBu.AbuML(x, y, df, fiter_type=<EMLFitType.E_FIT_AUTO: 'auto'>)[源代码]

Bases: object

封装有简单学习及无监督学习方法以及相关操作类

adaboost_classifier_best(**kwargs)[源代码]
eg:

adaboost_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.adaboost_classifier_best(param_grid=param_grid, n_jobs=-1)

out: AdaBoostClassifier(learning_rate=0.6, n_estimators=70)

adaboost_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.adaboost_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2),
‘n_estimators’: np.arange(10, 100, 10)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的AdaBoostClassifier对象
adaboost_regressor_best(**kwargs)[源代码]
eg:

adaboost_regressor_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.adaboost_regressor_best(param_grid=param_grid, n_jobs=-1)

out: AdaBoostRegressor(learning_rate=0.8, n_estimators=40)

adaboost_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.adaboost_regressor_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2),
‘n_estimators’: np.arange(10, 100, 10)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的AdaBoostRegressor对象
bagging_classifier_best(**kwargs)[源代码]
eg:

bagging_classifier_best有param_grid参数调用:

param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)} ttn_abu.bagging_classifier_best(param_grid=param_grid, n_jobs=-1)

out: BaggingClassifier(max_samples=4, n_estimators=100)

bagging_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.bagging_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的BaggingClassifier对象
bagging_regressor_best(**kwargs)[源代码]
eg:

bagging_regressor_best有param_grid参数调用:

param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)} ttn_abu.bagging_regressor_best(param_grid=param_grid, n_jobs=-1)

out: BaggingRegressor(max_samples=4, n_estimators=250)

bagging_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.bagging_regressor_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的BaggingRegressor对象
classmethod create_test_fiter()[源代码]

类方法:使用iris数据构造AbuML对象,测试接口,通过简单iris数据对方法以及策略进行验证 iris数据量小,如需要更多数据进行接口测试可使用create_test_more_fiter接口

eg: iris_abu = AbuML.create_test_fiter()

返回:AbuML(x, y, df), eg: df
y x0 x1 x2 x3

0 0 5.1 3.5 1.4 0.2 1 0 4.9 3.0 1.4 0.2 2 0 4.7 3.2 1.3 0.2 3 0 4.6 3.1 1.5 0.2 4 0 5.0 3.6 1.4 0.2 .. .. ... ... ... ... 145 2 6.7 3.0 5.2 2.3 146 2 6.3 2.5 5.0 1.9 147 2 6.5 3.0 5.2 2.0 148 2 6.2 3.4 5.4 2.3 149 2 5.9 3.0 5.1 1.8

classmethod create_test_more_fiter()[源代码]
类方法:使用泰坦尼克数据构造AbuML对象,测试接口,对方法以及策略进行验证 比iris数据多
eg: ttn_abu = AbuML.create_test_more_fiter()
返回:AbuML(x, y, df),构造AbuML最终的泰坦尼克数据形式如:
eg: df
Survived SibSp Parch Cabin_No Cabin_Yes Embarked_C Embarked_Q 0 0 1 0 1 0 0 0

1 1 1 0 0 1 1 0 2 1 0 0 1 0 0 0 3 1 1 0 0 1 0 0 4 0 0 0 1 0 0 0 5 0 0 0 1 0 0 1 6 0 0 0 0 1 0 0 7 0 3 1 1 0 0 0 8 1 0 2 1 0 0 0 9 1 1 0 1 0 1 0 .. ... ... ... ... ... ... ...

Embarked_S Sex_female Sex_male Pclass_1 Pclass_2 Pclass_3 0 1 0 1 0 0 1

1 0 1 0 1 0 0 2 1 1 0 0 0 1 3 1 1 0 1 0 0 4 1 0 1 0 0 1 5 0 0 1 0 0 1 6 1 0 1 1 0 0 7 1 0 1 0 0 1 8 1 1 0 0 0 1 9 0 1 0 0 1 0 .. ... ... ... ... ... ...

Age_scaled Fare_scaled

0 -0.5614 -0.5024 1 0.6132 0.7868 2 -0.2677 -0.4889 3 0.3930 0.4207 4 0.3930 -0.4863 5 -0.4271 -0.4781 6 1.7877 0.3958 7 -2.0295 -0.2241 8 -0.1943 -0.4243 .. ... ...

cross_val_accuracy_score(cv=10, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF,))装饰, 即只支持有监督学习分类,使用cross_val_score对数据进行accuracy度量 :param cv: 透传cross_val_score的参数,默认10 :param kwargs: 外部可以传递x, y, 通过

x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

确定传递self._do_cross_val_score中参数x,y, 装饰器使用的fiter_type,eg:ttn_abu.cross_val_accuracy_score(fiter_type=ml.EMLFitType.E_FIT_CLF)

返回:cross_val_score返回的score序列, eg: array([ 1. , 0.9 , 1. , 0.9 , 1. , 0.9 , 1. , 0.9 , 0.95, 1. ])
cross_val_mean_squared_score(cv=10, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类,使用cross_val_score对数据进行rmse度量 :param cv: 透传cross_val_score的参数,默认10 :param kwargs: 外部可以传递x, y, 通过

x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

确定传递self._do_cross_val_score中参数x,y, 以及装饰器使用的fiter_type,eg:ttn_abu.cross_val_roc_auc_score(fiter_type=ml.EMLFitType.E_FIT_CLF)

返回:cross_val_score返回的score序列, eg: array([-0.1889, -0.1667, -0.2135, -0.1348, -0.1573, -0.2022, -0.1798,
-0.2022, -0.1348, -0.1705])
cross_val_prob_accuracy_score(pb_threshold, cv=10, show=True, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF,))装饰, 即只支持有监督学习分类,拆分训练集,测试集,对所有数据进行一次predict_proba 获取分类的概率(具体阅读ABuMLExecute.run_prob_cv_estimator),之后根据 pb_threshold的值对结果概率进行二值转换,pb_threshold的均衡对影响数据的度量 准确度等

eg:
in: ttn_abu = AbuML.create_test_more_fiter()
ttn_abu.estimator.svc(probability=True) ttn_abu.cross_val_prob_accuracy_score(pb_threshold=0.60)
out:
threshold=0.6 prob accuracy=0.83, effect cnt=870, effect rate=0.98, score=0.81

阀值0.6,准确率0.83,生效比例0.98,分数0.81

in:
ttn_abu.cross_val_prob_accuracy_score(pb_threshold=0.80)
out:
threshold=0.8 prob accuracy=0.87, effect cnt=718, effect rate=0.81, score=0.70

阀值0.8,准确率0.87 提高,生效比例0.81 降低,分数0.70 降低

in:
ttn_abu.cross_val_prob_accuracy_score(pb_threshold=0.85)
out:
threshold=0.85 prob accuracy=0.89, effect cnt=337, effect rate=0.38, score=0.34

阀值0.85,准确率0.89 再次提高,生效比例0.38 很低,分数0.34 降低

即通过训练集数据寻找合适的prob值对数据的predict_prob进行非均衡处理,必然对交易的拦截进行非均衡 处理,只对有很大概率的的交易进行拦截

参数:
  • pb_threshold – binarize(y_prob, threshold=pb_threshold)中使用的二分阀值,float(0-1)
  • cv – 透传ABuMLExecute.run_prob_cv_estimator中的cv参数,默认10,int
  • show – 是否显示输出结果信息,默认显示
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    确定传递self._do_cross_val_score中参数x,y 装饰器使用的fiter_type

返回:

accuracy, effect_cnt, effect_rate, score

cross_val_roc_auc_score(cv=10, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF,))装饰, 即支持有监督学习分类,使用cross_val_score对数据进行roc_auc度量,如果数据的y的 label标签 > 2,通过label_binarize将label标签进行二值化处理, 依次计算二值化的列的roc_auc,结果返回score最好的数据度量 :param cv: 透传cross_val_score的参数,默认10 :param kwargs: 外部可以传递x, y, 通过

x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

确定传递self._do_cross_val_score中参数x,y, 以及装饰器使用的fiter_type,eg:ttn_abu.cross_val_roc_auc_score(fiter_type=ml.EMLFitType.E_FIT_REG)

返回:cross_val_score返回的score序列, eg: array([ 1. , 0.9 , 1. , 0.9 , 1. , 0.9 , 1. , 0.9 , 0.95, 1. ])
cross_val_silhouette_score(cv=10, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_KMEAN, ))装饰,即 只支持无监督学习kmean的cv验证,使用silhouette_score对聚类后的结果labels_ 进行度量使用silhouette_score :param cv: 透传run_silhouette_cv_estimator的参数,默认10 :param kwargs: 外部可以传递x 通过

x = kwargs.pop(‘x’, self.x)

确定传递ABuMLExecute.run_silhouette_cv_estimator中参数x 装饰器使用的fiter_type,

eg:ttn_abu.cross_val_silhouette_score(fiter_type=ml.EMLFitType.E_FIT_KMEAN)
返回:run_silhouette_cv_estimator返回的score序列, eg: array([ 0.6322, 0.6935, 0.7187, 0.6887, 0.6699, 0.703 , 0.6922,
0.7049, 0.6462, 0.6755])
decision_tree_classifier_best(**kwargs)[源代码]
eg:

decision_tree_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.decision_tree_classifier_best()

decision_tree_classifier_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘max_depth’: np.arange(1, 10, 1)} ttn_abu.decision_tree_classifier_best(param_grid=param_grid, n_jobs=-1)

out: DecisionTreeClassifier(max_features=’sqrt’, max_depth=7)

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],
‘max_depth’: np.arange(1, 10, 1)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的DecisionTreeClassifier对象
decision_tree_regressor_best(**kwargs)[源代码]
eg:

decision_tree_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.decision_tree_regressor_best()

decision_tree_regressor_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘max_depth’: np.arange(1, 10, 1)} ttn_abu.decision_tree_regressor_best(param_grid=param_grid, n_jobs=-1)

out: DecisionTreeRegressor(max_features=’sqrt’, max_depth=3)

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],
‘max_depth’: np.arange(1, 10, 1)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的DecisionTreeRegressor对象
echo_info(fiter=None)[源代码]

显示fiter class信息,self.df信息包括,head,tail,describe eg:

fiter class is: DecisionTreeClassifier(class_weight=None, criterion=’gini’, max_depth=None,
max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter=’best’)
describe:
y x0 x1 x2 x3

count 150.0000 150.0000 150.0000 150.0000 150.0000 mean 1.0000 5.8433 3.0540 3.7587 1.1987 std 0.8192 0.8281 0.4336 1.7644 0.7632 min 0.0000 4.3000 2.0000 1.0000 0.1000 25% 0.0000 5.1000 2.8000 1.6000 0.3000 50% 1.0000 5.8000 3.0000 4.3500 1.3000 75% 2.0000 6.4000 3.3000 5.1000 1.8000 max 2.0000 7.9000 4.4000 6.9000 2.5000

参数:fiter
返回:
feature_selection(show=True, **kwargs)[源代码]

被装饰器entry_wrapper()装饰,默认参数即支持有监督和无监督学习 监督学习通过sklern中的RFE包装拟合器进行fit(x, y),对数据的特征进行ranking和support评定

eg:
RFE selection
ranking support

SibSp 1 True Parch 1 True Cabin_No 1 True Cabin_Yes 7 False Embarked_C 2 False Embarked_Q 3 False Embarked_S 5 False Sex_female 8 False Sex_male 1 True Pclass_1 4 False Pclass_2 6 False Pclass_3 1 True Age_scaled 1 True Fare_scaled 1 True

无监督学习通过sklern中的VarianceThreshold进行fit(x),根据x的方差进行特征评定 eg:

unsupervised VarianceThreshold
support

SibSp True Parch True Cabin_No True Cabin_Yes True Embarked_C True Embarked_Q True Embarked_S True Sex_female True Sex_male True Pclass_1 True Pclass_2 True Pclass_3 True Age_scaled True Fare_scaled True

参数:
  • show – 是否在内部输出打印结果
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    确定传递self._do_cross_val_score中参数x,y, 以及装饰器使用的fiter_type,eg:ttn_abu.feature_selection(fiter_type=ml.EMLFitType.E_FIT_REG)

fit(**kwargs)[源代码]

包装fit操作,根据是否是有监督学习来区别 使用fit(x, y)还是fit(x)

eg:
in: iris_abu.estimator.random_forest_classifier()
iris_abu.fit()
out:
RandomForestClassifier(bootstrap=True, class_weight=None, criterion=’gini’,
max_depth=None, max_features=’auto’, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=100, n_jobs=1, oob_score=False, random_state=None, verbose=0, warm_start=False)
参数:kwargs
返回:fit(x, y)或者fit(x)操作后返回
fit_transform(**kwargs)[源代码]

被装饰器@entry_wrapper()装饰,默认参数即支持有监督和无监督学习, 内部通过检测isinstance(fiter, TransformerMixin) or hasattr(fiter, ‘fit_transform’) 来判定是否可以fit_transform

eg:

input: ttn_abu.x.shape output: (891, 14)

input: ttn_abu.fit_transform(fiter_type=ml.EMLFitType.E_FIT_PCA).shape output: (891, 4)

input: ttn_abu.fit_transform(fiter_type=ml.EMLFitType.E_FIT_KMEAN).shape output: (891, 2)

参数:kwargs
外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

以及装饰器使用的fiter_type,eg:ttn_abu.fit_transform(fiter_type=ml.EMLFitType.E_FIT_CLF)

返回:fit_transform后的转换结果矩阵
get_fiter()[源代码]

根据self.fiter_type的类型选择从self.estimator返回学习器对象

self.fiter_type == EMLFitType.E_FIT_AUTO:
自动选择有简单学习,当y的label数量 < 10个使用分类self.estimator.clf,否则回归self.estimator.reg
self.fiter_type == EMLFitType.E_FIT_REG:
使用有监督学习回归self.estimator.reg
self.fiter_type == EMLFitType.E_FIT_CLF:
使用有监督学习分类self.estimator.clf
self.fiter_type == EMLFitType.E_FIT_HMM:
使用无监督学习hmm,self.estimator.hmm
self.fiter_type == EMLFitType.E_FIT_PCA:
使用无监督学习pca,self.estimator.pca
self.fiter_type == EMLFitType.E_FIT_KMEAN:
使用无监督学习kmean,self.estimator.kmean
返回:返回学习器对象
importances_coef_pd(**kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类,根据fit后的feature_importances_或者coef_和原始self.df.columns 组成pd.DataFrame对象返回

eg:
feature importance

7 Sex_female 0.0000 10 Pclass_2 0.0018 3 Cabin_Yes 0.0033 5 Embarked_Q 0.0045 9 Pclass_1 0.0048 4 Embarked_C 0.0098 6 Embarked_S 0.0105 1 Parch 0.0154 2 Cabin_No 0.0396 0 SibSp 0.0506 11 Pclass_3 0.0790 13 Fare_scaled 0.1877 12 Age_scaled 0.2870 8 Sex_male 0.3060

coef columns

0 [-0.344229036121] SibSp 1 [-0.1049314305] Parch 2 [0.0] Cabin_No 3 [0.902140498996] Cabin_Yes 4 [0.0] Embarked_C 5 [0.0] Embarked_Q 6 [-0.417254399259] Embarked_S 7 [1.95656682017] Sex_female 8 [-0.677432099492] Sex_male 9 [0.3411515052] Pclass_1 10 [0.0] Pclass_2 11 [-1.19413332987] Pclass_3 12 [-0.523782082975] Age_scaled 13 [0.0844326510536] Fare_scaled

参数:kwargs
外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

以及装饰器使用的fiter_type,eg:ttn_abu.importances_coef_pd(fiter_type=ml.EMLFitType.E_FIT_REG)

返回:pd.DataFrame对象
is_supervised_learning()[源代码]

返回self.fiter_type所使用的是有监督学习还是无监督学习 :return: bool,True: 有监督,False: 无监督

knn_classifier_best(**kwargs)[源代码]
eg:

knn_classifier_best有param_grid参数调用:

param_grid = {‘algorithm’: [‘ball_tree’, ‘kd_tree’, ‘brute’], ‘n_neighbors’: np.arange(1, 26, 1)} ttn_abu.knn_classifier_best(param_grid=param_grid, n_jobs=-1)

out: KNeighborsClassifier(algorithm=’ball_tree’, n_neighbors=14)

knn_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.knn_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘algorithm’: [‘ball_tree’, ‘kd_tree’, ‘brute’],
‘n_neighbors’: np.arange(1, 26, 1)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的KNeighborsClassifier对象
classmethod load_ttn_raw_df()[源代码]

读取泰坦尼克测试数据 :return: pd.DataFrame对象,from接口pd.read_csv(train_csv_path)

plot_confusion_matrices(**kwargs)[源代码]

被entry_wrapper(support=(EMLFitType.E_FIT_CLF, ))装饰,即只支持分类 套接plot_confusion_matrices进行训练集测试集拆封分混淆矩阵计算且可视化 混淆矩阵

:param 外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

装饰器使用的fiter_type, eg:

ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_confusion_matrices(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_decision_function(use_pca=True, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类 :param use_pca: 是否使用pca进行降维,bool,默认True :param kwargs: 外部可以传递x, y, 通过

x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

装饰器使用的fiter_type, eg:

ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_decision_function(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_graphviz_tree(**kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类,绘制决策树或者core基于树的分类回归算法的决策示意图绘制,查看 学习器本身hasattr(fiter, ‘tree_‘)是否有tree_属性,如果没有使用决策树替换

参数:kwargs
外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

装饰器使用的fiter_type, eg:

ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_graphviz_tree(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_learning_curve(**kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类,绘制训练集数据的学习曲线,当训练集的y标签label非2分问题, 使用OneVsOneClassifier进行包装 :param kwargs:

外部可以传递x, y, 通过
x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

装饰器使用的fiter_type, eg:

ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_learning_curve(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_roc_estimator(pos_label=None, **kwargs)[源代码]

被entry_wrapper(support=(EMLFitType.E_FIT_CLF, ))装饰,即只支持分类 计算fpr, tpr, thresholds,最后绘制roc_auc曲线进行可视化操作

参数:
  • pos_label
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    装饰器使用的fiter_type, eg:

    ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_roc_estimator(fiter_type=ml.EMLFitType.E_FIT_CLF)
plot_visualize_tree(use_pca=True, **kwargs)[源代码]

被装饰器entry_wrapper(support=(EMLFitType.E_FIT_CLF, EMLFitType.E_FIT_REG))装饰, 即支持有监督学习回归和分类, 绘制特征平面,由于特征平面需要x的维度只能是2维,所以对 x的特征列多于两个的进行降维操作,默认使用pca,还可以选择根据特征的重要, 程度选择两个importances 最重要的特征进行特征平面绘制

参数:
  • use_pca – 是否使用pca进行降维,bool,默认True
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    装饰器使用的fiter_type, eg:

    ttn_abu = AbuML.create_test_more_fiter() ttn_abu.plot_visualize_tree(fiter_type=ml.EMLFitType.E_FIT_CLF)
predict(x, pre_fit=True, **kwargs)[源代码]

call有监督和无监督学习的predict,套接self._predict_callback方法,其 被装饰器params_to_numpy装饰,将predict参数中所有可迭代序列变成numpy, 即统一将x转换numpy序列,

eg:

test_input = pd.DataFrame.from_dict({‘x0’: 6.8, ‘x1’: 3.5, ‘x2’: 5.4, ‘x3’: 2.2}, orient=’index’) test_input:

0

x0 6.8 x1 3.5 x2 5.4 x3 2.2

iris_abu.predict(test_input)

params_to_numpy装饰后参数中的x转换为:array([[ 6.8, 3.5, 5.4, 2.2]]) numpy array

被装饰器entry_wrapper()装饰,默认参数即支持有监督和无监督学习 :param x: 可迭代序列,通过params_to_numpy装饰统一转换numpy :param pre_fit: bool,默认pre_fit True, 代表每次predict前先fit,

如在乎效率的情况下,需要在外部先fit后,参数pre_fit置False
参数:kwargs – 装饰器使用的fiter_type,eg:ttn_abu.predict(test_input, fiter_type=ml.EMLFitType.E_FIT_KMEAN)
返回:eg: array([2])
predict_proba(x, pre_fit=True, **kwargs)[源代码]

call有监督和无监督学习的predict_proba,套接self._predict_callback方法,其 被装饰器params_to_numpy装饰,将predict参数中所有可迭代序列变成numpy, 即统一将x转换numpy序列,

eg:

test_input = pd.DataFrame.from_dict({‘x0’: 6.8, ‘x1’: 3.5, ‘x2’: 5.4, ‘x3’: 2.2}, orient=’index’) test_input:

0

x0 6.8 x1 3.5 x2 5.4 x3 2.2

iris_abu.predict_proba(test_input, fiter_type=ml.EMLFitType.E_FIT_CLF)

params_to_numpy装饰后参数中的x转换为:array([[ 6.8, 3.5, 5.4, 2.2]]) numpy array

被装饰器entry_wrapper()装饰,默认参数即支持有监督和无监督学习 :param x: 通过params_to_numpy装饰统一转换numpy :param pre_fit: bool,默认pre_fit True, 代表每次predict前先fit,

如在乎效率的情况下,需要在外部先fit后,参数pre_fit置False
参数:kwargs – 装饰器使用的fiter_type,eg:iris_abu.predict_proba(test_input, fiter_type=ml.EMLFitType.E_FIT_CLF)
返回:eg: array([[ 0.2, 0.3, 0.5]])
predict_proba_threshold(x, threshold, default_ret, pre_fit=True, **kwargs)[源代码]
eg:

in: ttn_abu = AbuML.create_test_more_fiter() in: ttn_abu.estimator.svc(probability=True) in: ttn_abu.search_match_pos_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF) out: 0.770 satisfy require, accuracy:0.850, effect_rate:0.854

即通过search_match_pos_threshold获取了predict_proba的二分阀值为0.77时,分类的正确率达到0.85, 且覆盖80%样本

in: test = np.array([ 1. , 0. , 0. , 1. , 1. , 0. , 0. ,1. , 0. , 1.
, 0. , 0. , 0.8132, 0.5868])

in: ttn_abu.predict_proba(test) out: array([[ 0.106, 0.894]]) 使用predict_proba得到的是分类的概率

in: ttn_abu.predict_proba_threshold(test, threshold=0.77 ,default_ret=0) out: 1 使用predict_proba_threshold将阀值threshold设定0.77后,可以得到输出为1,即概率 0.894 > 0.77, 标签1分类成立

in: test2 = np.array([ 0. , 1. , 1. , 0. , 1. , 1. , 0. ,1. , 0. , 0.
, 0. , 1. , 0.7832, 0.2868])

in: ttn_abu.predict_proba(test2) out: array([[ 0.2372, 0.7628]])

in: ttn_abu.predict_proba_threshold(test2, threshold=0.77 ,default_ret=0) out: 0 对test2做predict_proba_threshold返回0,因为0.7628 < 0.77, 标签1的分类不成立,返回default_ret

应用场景:比如对交易进行拦截,实行高放行率,低拦截率,0代表放行,1代表拦截,
上述predict_proba_threshold(test2, threshold=0.77 ,default_ret=0) 即可实行对较大概率的交易进行拦截,即把握大的进行拦截,把握不大的默认选择放行
参数:
  • x – 在predict_proba中通过params_to_numpy装饰统一转换numpy
  • threshold – 对predict_proba结果进行二值化的阀值 eg: threshold=0.77
  • default_ret

    使用predict_proba返回的矢量和不等于1时,即没有进行有效投票时返回的值: eg:

    proba = np.where(proba >= threshold, 1, 0) if proba.sum() != 1:
    # eg: proba = array([[ 0.2328, 0.7672]])->array([[0, 0]]) return default_ret
  • pre_fit – bool,默认pre_fit True, 代表每次predict前先fit, 如在乎效率的情况下,需要在外部先fit后,参数pre_fit置False
  • kwargs

    装饰器使用的fiter_type, eg:iris_abu.predict_proba_threshold(test_input, , threshold=0.77 ,default_ret=0

    fiter_type=ml.EMLFitType.E_FIT_CLF)
返回:

int,default_ret or proba.argmax()

random_forest_classifier_best(**kwargs)[源代码]
eg:

random_forest_classifier_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘n_estimators’: np.arange(50, 200, 20)} ttn_abu.random_forest_classifier_best(param_grid=param_grid, n_jobs=-1)

out: RandomForestClassifier(max_features=’sqrt’, n_estimators=190)

random_forest_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.random_forest_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],
‘n_estimators’: np.arange(10, 150, 15)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的RandomForestClassifier对象
random_forest_regressor_best(**kwargs)[源代码]
eg:

random_forest_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.random_forest_regressor_best()

random_forest_regressor_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘n_estimators’: np.arange(10, 150, 15)} ttn_abu.random_forest_regressor_best(param_grid=param_grid, n_jobs=-1)

out: RandomForestRegressor(max_features=’log2’, n_estimators=115)

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],
‘n_estimators’: np.arange(10, 150, 15)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的RandomForestRegressor对象
search_match_neg_threshold(accuracy_match=0, effect_rate_match=0, neg_num=50, **kwargs)[源代码]

套接self.cross_val_prob_accuracy_score,通过np.linspace(0.01, 0.50, num=neg_num)[::-1]生成 pb_threshold参数序列,这里linspace的start从0.01至0.50后[::-1]倒序,依次迭代生成的阀值参数 ,当cross_val_prob_accuracy_score返回的正确率大于 参数中accuracy_match且返回的生效率大于参数中的effect_rate_match, 匹配寻找成功,中断迭代操作,返回寻找到的满足条件的阀值,返回的阀值应用场景阅读predict_proba_threshold函数

eg:
in: ttn_abu.search_match_neg_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF) out: 0.220 satisfy require, accuracy:0.852, effect_rate:0.844
参数:
  • accuracy_match – 寻找阀值条件,需要当cross_val_prob_accuracy_score返回的正确率大于accuracy_match, float, 范围(0-1),默认值0
  • effect_rate_match – 寻找阀值条件,需要当cross_val_prob_accuracy_score返回的生效率大于effect_rate_match, float, 范围(0-1),默认值0
  • neg_num – 透传neg_thresholds = np.linspace(0.01, 0.50, num=neg_num)[::-1]的参数,默认50
  • kwargs – 装饰器使用的fiter_type, eg: iris_abu.search_match_neg_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF)
返回:

返回寻找到的满足条件的阀值,float

search_match_pos_threshold(accuracy_match=0, effect_rate_match=0, pos_num=50, **kwargs)[源代码]

套接self.cross_val_prob_accuracy_score,通过np.linspace(0.50, 0.99, num=neg_num)生成 pb_threshold参数序列,这里linspace的start从0.50至0.99正序,依次迭代生成的阀值参数 ,当cross_val_prob_accuracy_score返回的正确率大于 参数中accuracy_match且返回的生效率大于参数中的effect_rate_match, 匹配寻找成功,中断迭代操作,返回寻找到的满足条件的阀值,返回的阀值应用场景阅读predict_proba_threshold函数

eg:
in: ttn_abu.search_match_pos_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF) out: 0.770 satisfy require, accuracy:0.850, effect_rate:0.854
参数:
  • accuracy_match – 寻找阀值条件,需要当cross_val_prob_accuracy_score返回的正确率大于accuracy_match, float, 范围(0-1),默认值0
  • effect_rate_match – 寻找阀值条件,需要当cross_val_prob_accuracy_score返回的生效率大于effect_rate_match, float, 范围(0-1),默认值0
  • pos_num – 透传neg_thresholds = np.linspace(0.50, 0.99, num=neg_num)的参数,默认50
  • kwargs – 装饰器使用的fiter_type, eg: iris_abu.search_match_pos_threshold(0.85, 0.80, fiter_type=ml.EMLFitType.E_FIT_CLF)
返回:

返回寻找到的满足条件的阀值,float

train_test_split_df(test_size=0.1, random_state=0, **kwargs)[源代码]

套接封装train_test_split_xy,外部传递pd.DataFrame参数时使用 :param test_size: 透传参数train_test_split_xy :param random_state: 透传参数train_test_split_xy :param kwargs: 通过 df = kwargs.pop(‘df’, self.df)弹出传递的pd.DataFrame对象进行x,y分解

y = matrix[:, 0],即硬编码分类y在第一列,外部传递的df对象需要遵循 以及装饰器使用的fiter_type,eg:ttn_abu.train_test_split_df(fiter_type=ml.EMLFitType.E_FIT_CLF)
train_test_split_xy(test_size=0.1, random_state=0, **kwargs)[源代码]

被entry_wrapper(support=(EMLFitType.E_FIT_CLF, ))装饰,即只支持分类 首先使用train_test_split将x,y根据参数test_size切割训练集和测试集, 显示数据集,训练集,测试集的数量,针对训练集数据进行训练,使用训练好的 分类器对测试集x进行predict,对结果分别使用metrics.accuracy_score, metrics.precision_score, metrics.recall_score度量准确率,查准率, 和召回率,多label的的情况下使用average = ‘macro’对precision_score和 recall_score进行度量,最后显示分类结果混淆矩阵以及metrics.classification_report 情况

eg:

x-y:(891, 14)-(891,) train_x-train_y:(801, 14)-(801,) test_x-test_y:(90, 14)-(90,) accuracy = 0.77 precision_score = 0.74 recall_score = 0.72

Predicted
0 | 1 |

|—–|—–|

0 | 41 | 10 |

Actual |—–|—–|
1 | 11 | 28 |
|—–|—–|
precision recall f1-score support

0.0 0.79 0.80 0.80 51 1.0 0.74 0.72 0.73 39

avg / total 0.77 0.77 0.77 90

参数:
  • test_size – 测试集占比例,float,默认0.1,即将数据分10份,一份做为测试集
  • random_state – 透传给train_test_split的随机参数
  • kwargs
    外部可以传递x, y, 通过
    x = kwargs.pop(‘x’, self.x) y = kwargs.pop(‘y’, self.y)

    以及装饰器使用的fiter_type,eg:ttn_abu.train_test_split_xy(fiter_type=ml.EMLFitType.E_FIT_CLF)

xgb_classifier_best(**kwargs)[源代码]
eg:

xgb_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05), ‘n_estimators’: np.arange(50, 200, 10)} ttn_abu.xgb_classifier_best(param_grid=param_grid, n_jobs=-1)

out: GradientBoostingClassifier(learning_rate=0.1, n_estimators=160) xgb_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.xgb_classifier_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05),
‘n_estimators’: np.arange(50, 200, 10)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的GradientBoostingClassifier对象
xgb_regressor_best(**kwargs)[源代码]
eg:

xgb_regressor_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.xgb_regressor_best(param_grid=param_grid, n_jobs=-1)

out: GradientBoostingRegressor(learning_rate=0.2, n_estimators=70)

xgb_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.xgb_regressor_best()

参数:kwargs
关键字可选参数param_grid: 最优字典关键字参数
eg:param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05),
‘n_estimators’: np.arange(10, 100, 10)}

关键字可选参数assign: 是否保存实例化后最优参数的学习器对象,默认True 关键字可选参数n_jobs: 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数 关键字可选参数show: 是否可视化最优参数搜索结果

返回:通过最优参数构造的GradientBoostingRegressor对象
class abupy.MLBu.AbuMLCreater[源代码]

Bases: object

封装常用有简单和无监督学习器实例化类

adaboost_classifier(assign=True, base_estimator=DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None, max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter='best'), **kwargs)[源代码]
有监督学习分类器,实例化AdaBoostClassifier,默认使用:
AdaBoostClassifier(base_estimator=base_estimator, n_estimators=100, random_state=1)
通过**kwargs即关键字参数透传AdaBoostClassifier,即:
AdaBoostClassifier(**kwargs)
参数:
  • base_estimator – 默认使用DecisionTreeClassifier()
  • assign – 是否保存实例后的AdaBoostClassifier对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: AdaBoostClassifier(**kwargs) 无参数情况下初始化: AdaBoostClassifier(n_estimators=100, random_state=1)
返回:

实例化的AdaBoostClassifier对象

adaboost_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找AdaBoostClassifier构造器的最优参数

上层AbuML中adaboost_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

adaboost_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.adaboost_classifier_best()

adaboost_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.adaboost_classifier_best(param_grid=param_grid, n_jobs=-1)

out: AdaBoostClassifier(learning_rate=0.6, n_estimators=70)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2),

    ‘n_estimators’: np.arange(10, 100, 10)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的AdaBoostClassifier对象

adaboost_regressor(assign=True, base_estimator=DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter='best'), **kwargs)[源代码]
有监督学习回归器,实例化AdaBoostRegressor,默认使用:
AdaBoostRegressor(base_estimator=base_estimator, n_estimators=100, random_state=1)
通过**kwargs即关键字参数透传AdaBoostRegressor,即:
AdaBoostRegressor(**kwargs)
参数:
  • base_estimator – 默认使用DecisionTreeRegressor()
  • assign – 是否保存实例后的AdaBoostRegressor对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: AdaBoostRegressor(**kwargs) 无参数情况下初始化: AdaBoostRegressor(n_estimators=100, random_state=1)
返回:

实例化的AdaBoostRegressor对象

adaboost_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找AdaBoostRegressor构造器的最优参数

上层AbuML中adaboost_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

adaboost_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.adaboost_regressor_best()

adaboost_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.adaboost_regressor_best(param_grid=param_grid, n_jobs=-1)

out: AdaBoostRegressor(learning_rate=0.8, n_estimators=40)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘learning_rate’: np.arange(0.2, 1.2, 0.2),

    ‘n_estimators’: np.arange(10, 100, 10)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的AdaBoostRegressor对象

bagging_classifier(assign=True, base_estimator=DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None, max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter='best'), **kwargs)[源代码]
有监督学习分类器,实例化BaggingClassifier,默认使用:
BaggingClassifier(base_estimator=base_estimator, n_estimators=200,
bootstrap=True, oob_score=True, random_state=1)
通过**kwargs即关键字参数透传BaggingClassifier,即:
BaggingClassifier(**kwargs)
参数:
  • base_estimator – 默认使用DecisionTreeClassifier()
  • assign – 是否保存实例后的BaggingClassifier对象,默认True,self.clf = clf
  • kwargs

    有参数情况下初始化: BaggingClassifier(**kwargs) 无参数情况下初始化: BaggingClassifier(base_estimator=base_estimator, n_estimators=200,

    bootstrap=True, oob_score=True, random_state=1)
返回:

实例化的BaggingClassifier对象

bagging_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找BaggingClassifier构造器的最优参数 上层AbuML中bagging_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

bagging_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.bagging_classifier_best()

bagging_classifier_best有param_grid参数调用:

param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)} ttn_abu.bagging_classifier_best(param_grid=param_grid, n_jobs=-1)

out: BaggingClassifier(max_samples=4, n_estimators=100)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid – 最优字典关键字参数, eg:param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的BaggingClassifier对象

bagging_regressor(assign=True, base_estimator=DecisionTreeRegressor(criterion='mse', max_depth=None, max_features=None, max_leaf_nodes=None, min_impurity_split=1e-07, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter='best'), **kwargs)[源代码]
有监督学习回归器,实例化BaggingRegressor,默认使用:
BaggingRegressor(base_estimator=base_estimator, n_estimators=200,
bootstrap=True, oob_score=True, random_state=1)
通过**kwargs即关键字参数透传BaggingRegressor,即:
BaggingRegressor(**kwargs)
参数:
  • base_estimator – 默认使用DecisionTreeRegressor()
  • assign – 是否保存实例后的BaggingRegressor对象,默认True,self.reg = reg
  • kwargs

    有参数情况下初始化: BaggingRegressor(**kwargs) 无参数情况下初始化: BaggingRegressor(base_estimator=base_estimator, reg_core, n_estimators=200,

    bootstrap=True, oob_score=True, random_state=1)
返回:

实例化的BaggingRegressor对象

bagging_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找BaggingRegressor构造器的最优参数 上层AbuML中bagging_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

bagging_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.bagging_regressor_best()

bagging_regressor_best有param_grid参数调用:

param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)} ttn_abu.bagging_regressor_best(param_grid=param_grid, n_jobs=-1)

out: BaggingRegressor(max_samples=4, n_estimators=250)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid – 最优字典关键字参数, eg:param_grid = {‘max_samples’: np.arange(1, 5), ‘n_estimators’: np.arange(100, 300, 50)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的BaggingRegressor对象

decision_tree_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化DecisionTreeClassifier,默认使用:
DecisionTreeClassifier(max_depth=2, random_state=1)
通过**kwargs即关键字参数透传DecisionTreeClassifier,即:
DecisionTreeClassifier(**kwargs)
参数:
  • assign – 是否保存实例后的DecisionTreeClassifier对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: DecisionTreeClassifier(**kwargs) 无参数情况下初始化: DecisionTreeClassifier(max_depth=2, random_state=1)
返回:

实例化的DecisionTreeClassifier对象

decision_tree_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找DecisionTreeClassifier构造器的最优参数

上层AbuML中decision_tree_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

decision_tree_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.decision_tree_classifier_best()

decision_tree_classifier_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘max_depth’: np.arange(1, 10, 1)} ttn_abu.decision_tree_classifier_best(param_grid=param_grid, n_jobs=-1)

out: DecisionTreeClassifier(max_features=’sqrt’, max_depth=7)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],

    ‘n_estimators’: np.arange(50, 200, 20)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的DecisionTreeClassifier对象

decision_tree_regressor(assign=True, **kwargs)[源代码]
有监督学习回归器,实例化DecisionTreeRegressor,默认使用:
DecisionTreeRegressor(max_depth=2, random_state=1)
通过**kwargs即关键字参数透传DecisionTreeRegressor,即:
DecisionTreeRegressor(**kwargs)
参数:
  • assign – 是否保存实例后的DecisionTreeRegressor对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: DecisionTreeRegressor(**kwargs) 无参数情况下初始化: DecisionTreeRegressor(max_depth=2, random_state=1)
返回:

实例化的DecisionTreeRegressor对象

decision_tree_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找DecisionTreeRegressor构造器的最优参数

上层AbuML中decision_tree_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

decision_tree_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.decision_tree_regressor_best()

decision_tree_regressor_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘max_depth’: np.arange(1, 10, 1)} ttn_abu.decision_tree_regressor_best(param_grid=param_grid, n_jobs=-1)

out: DecisionTreeRegressor(max_features=’sqrt’, max_depth=3)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],

    ‘n_estimators’: np.arange(50, 200, 20)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的DecisionTreeRegressor对象

hmm_gaussian(assign=True, **kwargs)[源代码]

无监督学习器,实例化GMM,默认使用GMM(n_components=2),通过**kwargs即 关键字参数透传GMM,即GMM(**kwargs)

导入模块使用
try:
from hmmlearn.hmm import GaussianHMM as GMM
except ImportError:
from ..CoreBu.ABuFixes import GMM

即优先选用hmmlearn中的GaussianHMM,没有安装的情况下使用sklearn中的GMM

参数:
  • assign – 是否保存实例后的hmm对象,默认True,self.hmm = hmm
  • kwargs – 有参数情况下初始化: GMM(**kwargs) 无参数情况下初始化: GMM(n_components=2)
返回:

实例化的GMM对象

kmean_cluster(assign=True, **kwargs)[源代码]

无监督学习器,实例化KMeans,默认使用KMeans(n_clusters=2, random_state=0), 通过**kwargs即关键字参数透传KMeans,即KMeans(**kwargs)

参数:
  • assign – 是否保存实例后的kmean对象,默认True,self.kmean = kmean
  • kwargs – 有参数情况下初始化: KMeans(**kwargs) 无参数情况下初始化: KMeans(n_clusters=2, random_state=0)
返回:

实例化的KMeans对象

knn_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化KNeighborsClassifier,默认使用:
KNeighborsClassifier(n_neighbors=1)
通过**kwargs即关键字参数透传KNeighborsClassifier,即:
KNeighborsClassifier(**kwargs)
参数:
  • assign – 是否保存实例后的KNeighborsClassifier对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: KNeighborsClassifier(**kwargs) 无参数情况下初始化: KNeighborsClassifier(n_neighbors=1)
返回:

实例化的KNeighborsClassifier对象

knn_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找KNeighborsClassifier构造器的最优参数

上层AbuML中knn_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

knn_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.knn_classifier_best()

knn_classifier_best有param_grid参数调用:

param_grid = {‘algorithm’: [‘ball_tree’, ‘kd_tree’, ‘brute’], ‘n_neighbors’: np.arange(1, 26, 1)} ttn_abu.knn_classifier_best(param_grid=param_grid, n_jobs=-1)

out: KNeighborsClassifier(algorithm=’ball_tree’, n_neighbors=14)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘algorithm’: [‘ball_tree’, ‘kd_tree’, ‘brute’],

    ‘n_neighbors’: np.arange(1, 26, 1)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的KNeighborsClassifier对象

linear_regression(assign=True, **kwargs)[源代码]
有监督学习回归器,实例化LinearRegression,默认使用:
LinearRegression()
通过**kwargs即关键字参数透传LinearRegression,即:
LinearRegression(**kwargs)
参数:
  • assign – 是否保存实例后的LinearRegression对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: LinearRegression(**kwargs) 无参数情况下初始化: LinearRegression()
返回:

实例化的LinearRegression对象

logistic_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化LogisticRegression,默认使用:
LogisticRegression(C=1.0, penalty=’l1’, tol=1e-6)
通过**kwargs即关键字参数透传LogisticRegression,即:
LogisticRegression(**kwargs)
参数:
  • assign – 是否保存实例后的LogisticRegression对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: LogisticRegression(**kwargs) 无参数情况下初始化: LogisticRegression(C=1.0, penalty=’l1’, tol=1e-6)
返回:

实例化的LogisticRegression对象

onevsone_classifier(assign=False, **kwargs)[源代码]

封装有监督学习分类器,使用OneVsOneClassifier进行多label的 分类器二次封装,即:

OneVsOneClassifier(self.clf, **kwargs)
参数:
  • assign – 是否保存实例后的二次封装分类器对象,与其它构造器不同, 默认False,即默认不保存在类中替换原始分类器
  • kwargs – 透传OneVsOneClassifier做为构造关键字参数
返回:

OneVsOneClassifier对象

onevsreset_classifier(assign=False, **kwargs)[源代码]

封装有监督学习分类器,使用OneVsRestClassifier进行多label的 分类器二次封装,即:

OneVsRestClassifier(self.clf, **kwargs)
参数:
  • assign – 是否保存实例后的二次封装分类器对象,与其它构造器不同, 默认False,即默认不保存在类中替换原始分类器
  • kwargs – 透传OneVsRestClassifier做为构造关键字参数
返回:

OneVsRestClassifier对象

pca_decomposition(assign=True, **kwargs)[源代码]

无监督学习器,实例化PCA,默认使用pca = PCA(0.95),通过**kwargs即 关键字参数透传PCA,即PCA(**kwargs)

参数:
  • assign – 是否保存实例后的PCA对象,默认True,self.pca = pca
  • kwargs – 有参数情况下初始化: PCA(**kwargs) 无参数情况下初始化: pca = PCA(0.95)
返回:

实例化的PCA对象

polynomial_regression(assign=True, degree=2, **kwargs)[源代码]
有监督学习回归器,使用:
make_pipeline(PolynomialFeatures(degree), LinearRegression(**kwargs))
参数:
  • assign – 是否保存实例后的LinearRegression对象,默认True,self.reg = reg
  • degree – 多项式拟合参数,默认2
  • kwargs – 由make_pipeline(PolynomialFeatures(degree), LinearRegression(**kwargs)) 即关键字参数**kwargs全部传递给LinearRegression做为构造参数
返回:

实例化的回归对象

random_forest_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化RandomForestClassifier,默认使用:
RandomForestRegressor(n_estimators=100)
通过**kwargs即关键字参数透传RandomForestRegressor,即:
RandomForestRegressor(**kwargs)
参数:
  • assign – 是否保存实例后的RandomForestRegressor对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: RandomForestRegressor(**kwargs) 无参数情况下初始化: RandomForestRegressor(n_estimators=100)
返回:

实例化的RandomForestRegressor对象

random_forest_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找RandomForestClassifier构造器的最优参数

上层AbuML中random_forest_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

random_forest_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.random_forest_classifier_best()

random_forest_classifier_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘n_estimators’: np.arange(50, 200, 20)} ttn_abu.random_forest_classifier_best(param_grid=param_grid, n_jobs=-1)

out: RandomForestClassifier(max_features=’sqrt’, n_estimators=190)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],

    ‘n_estimators’: np.arange(50, 200, 20)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的RandomForestClassifier对象

random_forest_regressor(assign=True, **kwargs)[源代码]
有监督学习回归器,实例化RandomForestRegressor,默认使用:
RandomForestRegressor(n_estimators=100)
通过**kwargs即关键字参数透传RandomForestRegressor,即:
RandomForestRegressor(**kwargs)
参数:
  • assign – 是否保存实例后的RandomForestRegressor对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: RandomForestRegressor(**kwargs) 无参数情况下初始化: RandomForestRegressor(n_estimators=100)
返回:

实例化的RandomForestRegressor对象

random_forest_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找RandomForestRegressor构造器的最优参数

上层AbuML中random_forest_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

random_forest_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.random_forest_regressor_best()

random_forest_regressor_best有param_grid参数调用:

param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ], ‘n_estimators’: np.arange(10, 150, 15)} ttn_abu.random_forest_regressor_best(param_grid=param_grid, n_jobs=-1)

out: RandomForestRegressor(max_features=’sqrt’, n_estimators=115)
参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘max_features’: [‘sqrt’, ‘log2’, ],

    ‘n_estimators’: np.arange(10, 150, 15)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的RandomForestRegressor对象

svc(assign=True, **kwargs)[源代码]
有监督学习分类器,实例化SVC,默认使用:
SVC(kernel=’rbf’, probability=True)
通过**kwargs即关键字参数透传SVC,即:
SVC(**kwargs)
参数:
  • assign – 是否保存实例后的RandomForestRegressor对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: SVC(**kwargs) 无参数情况下初始化: SVC(kernel=’rbf’, probability=True)
返回:

实例化的SVC对象

xgb_classifier(assign=True, **kwargs)[源代码]
有监督学习分类器,默认使用:
GBC(n_estimators=100)
通过**kwargs即关键字参数透传GBC(**kwargs),即:
GBC(**kwargs)
注意导入使用:
try:
from xgboost.sklearn import XGBClassifier as GBC
except ImportError:
from sklearn.ensemble import GradientBoostingClassifier as GBC
参数:
  • assign – 是否保存实例后的分类器对象,默认True,self.clf = clf
  • kwargs – 有参数情况下初始化: GBC(n_estimators=100) 无参数情况下初始化: GBC(**kwargs)
返回:

实例化的GBC对象

xgb_classifier_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找GradientBoostingClassifier构造器的最优参数

上层AbuML中xgb_classifier_best函数,直接使用AbuML中的x,y数据调用 eg:

xgb_classifier_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.xgb_classifier_best()

xgb_classifier_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05), ‘n_estimators’: np.arange(50, 200, 10)} ttn_abu.xgb_classifier_best(param_grid=param_grid, n_jobs=-1)

out: GradientBoostingClassifier(learning_rate=0.1, n_estimators=160)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05),

    ‘n_estimators’: np.arange(50, 200, 10)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的GradientBoostingClassifier对象

xgb_regressor(assign=True, **kwargs)[源代码]
有监督学习回归器,默认使用:
GBR(n_estimators=100)
通过**kwargs即关键字参数透传GBR(**kwargs),即:
GBR(**kwargs)
注意导入使用:
try:
from xgboost.sklearn import XGBRegressor as GBR
except ImportError:
from sklearn.ensemble import GradientBoostingRegressor as GBR
参数:
  • assign – 是否保存实例后的回归器对象,默认True,self.reg = reg
  • kwargs – 有参数情况下初始化: GBR(n_estimators=100) 无参数情况下初始化: GBR(**kwargs)
返回:

实例化的GBR对象

xgb_regressor_best(x, y, param_grid=None, assign=True, n_jobs=-1, show=True)[源代码]

寻找GradientBoostingRegressor构造器的最优参数

上层AbuML中xgb_regressor_best函数,直接使用AbuML中的x,y数据调用 eg:

xgb_regressor_best无param_grid参数调用:

from abupy import AbuML, ml ttn_abu = AbuML.create_test_more_fiter() ttn_abu.xgb_regressor_best()

xgb_regressor_best有param_grid参数调用:

param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05), ‘n_estimators’: np.arange(10, 100, 10)} ttn_abu.xgb_regressor_best(param_grid=param_grid, n_jobs=-1)

out: GradientBoostingRegressor(learning_rate=0.2, n_estimators=70)

参数:
  • x – 训练集x矩阵,numpy矩阵
  • y – 训练集y序列,numpy序列
  • param_grid

    最优字典关键字参数, eg:param_grid = {‘learning_rate’: np.arange(0.1, 0.5, 0.05),

    ‘n_estimators’: np.arange(10, 100, 10)}
  • assign – 是否保存实例化后最优参数的学习器对象,默认True
  • n_jobs – 并行执行的进程任务数量,默认-1, 开启与cpu相同数量的进程数
  • show – 是否可视化最优参数搜索结果
返回:

通过最优参数构造的GradientBoostingRegressor对象

class abupy.MLBu.AbuMLPd(**kwarg)[源代码]

Bases: abc.NewBase

封装AbuML的上层具体业务逻辑类

make_xy(**kwarg)[源代码]

子类需要完成的abstractmethod方法,可以从**kwarg中得到数据 或者make_xy中本身生产数据,但在make_xy之后,类变量中一定要有 x,y和df