2019-09-22 sklearn

2019-10-11  本文已影响0人  奔跑的考拉_zdpg

sklearn是基于numpy和scipy的一个机器学习算法库,设计的非常优雅,它让我们能够使用同样的接口来实现所有不同的算法调用。本文首先介绍下sklearn内的模块组织算法类的顶层设计图

库结构

(1)结构:

由图中,可以看到库的算法主要有四类:分类,回归,聚类,降维。其中:

常用的回归:线性、决策树、SVM、KNN ;集成回归:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees

常用的分类:线性、决策树、SVM、KNN,朴素贝叶斯;集成分类:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees

常用聚类:k均值(K-means)、层次聚类(Hierarchical clustering)、DBSCAN

常用降维:LinearDiscriminantAnalysis、PCA

(2)图片中隐含的操作流程:

这个流程图代表:蓝色圆圈内是判断条件,绿色方框内是可以选择的算法。你可以根据自己的数据特征和任务目标去找到一条自己的操作路线,一步步做就好了。

三大模块

监督学习(supervised learning)

1.

neighbors:近邻算法

svm:支持向量机

kernel-ridge:核——岭回归

discriminant_analysis:判别分析

linear_model:广义线性模型

2.

ensemle:集成方法

tree:决策树

naive_bayes:朴素贝叶斯

cross_decomposition:交叉分解

gaussian_process:高斯过程

3.

neural_network:神经网络

calibration:概率校准

isotonic:保序回归

feature_selection:特征选择

multiclass:多类多标签算法

无监督学习(unsupervised learning)

1.

decomposition:矩阵因子分解

cluster:聚类

manifold:流形学习

mixture:高斯混合模型

2.

neural_network:无监督神经网络

density:密度估计

covariance:协方差估计

数据变换

1.

feature_extraction:特征抽取

feature_selection:特征选择

preprocess:预处理

2.

random_projection:随机投影

kernel_approximation:核逼近

pipline:管道流(这个严格说不算是数据变换模块)

统一的API接口

 在sklearn里面,我们可以使用完全一样的接口来实现不同的机器学习算法,通俗的流程可以理解如下:

数据加载和预处理

定义分类器(回归器等等),譬如svc = svm.svc()

用训练集对模型进行训练,只需调用fit方法,svc.fit(X_train, y_train)

用训练好的模型进行预测:y_pred=svc.predict(X_test)

对模型进行性能评估:svc.score(X_test, y_test)

上一篇 下一篇

猜你喜欢

热点阅读