作者:韩信子@ShowMeAI
教程地址:http://www.showmeai.tech/tutorials/41
本文地址:http://www.showmeai.tech/article-detail/202
申明:版权所有,转载请分割平台与作者并注明出处
珍藏ShowMeAI查看更多精彩内容

引言

在后面的机器学习案例中,咱们应用了Python机器学习工具库Scikit-Learn,它建设在NumPy、SciPy、Pandas和Matplotlib之上,也是最罕用的Python机器学习工具库之一,外面的API的设计十分好,所有对象的接口简略,很适宜新手上路。ShowMeAI在本篇内容中对Scikit-Learn做一个介绍。

1.SKLearn是什么

Scikit-Learn也简称SKLearn,是一个基于Python语言的机器学习工具,它对罕用的机器学习办法进行了封装,例如,分类、回归、聚类、降维、模型评估、数据预处理等,咱们只需调用对应的接口即可。


在SKLearn的官网上,写着以下四点介绍:

  • 一个简略高效的数据挖掘和数据分析工具。
  • 构建在NumPy,SciPy和matplotlib上。
  • 可供大家在各种环境中重复使用。
  • 开源,可商业应用–BSD许可证。

SKLearn官网:https://scikit-learn.org/stable/

SKLearn的疾速应用办法也举荐大家查看ShowMeAI的文章和速查手册 AI建模工具速查|Scikit-learn使用指南

2.装置SKLearn

装置SKLearn非常简单,命令行窗口中输出命令:

pip install scikit-learn

咱们也能够应用清华镜像源装置,通常速度会更快一些:

pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple

3.SKLearn罕用接口

对于机器学习整个流程中波及到的罕用操作,SKLearn中简直都有现成的接口能够间接调用,而且不论应用什么处理器或者模型,它的接口统一度都十分高。

3.1 数据集导入

更多数据集请参考SKLearn官网:https://scikit-learn.org/stable/modules/classes.html?highlight=dataset#module-sklearn.datasets

#鸢尾花数据集from sklearn.datasets import load_iris#乳腺癌数据集from sklearn.datasets import load_breast_cancer#波士顿房价数据集from sklearn.datasets import load_boston

3.2 数据预处理

官网链接:https://scikit-learn.org/stable/modules/classes.html#module-sklearn.preprocessing

#拆分数据集from sklearn.model_selection import train_test_split#数据缩放from sklearn.preprocessing import MinMaxScaler

3.3 特色抽取

官网链接:https://scikit-learn.org/stable/modules/classes.html#module-sklearn.feature_extraction

from sklearn.feature_extraction import DictVectorizerv = DictVectorizer(sparse=False)D = [{'foo': 1, 'bar': 2}, {'foo': 3, 'baz': 1}]X = v.fit_transform(D)

3.4 特征选择

官网链接:https://scikit-learn.org/stable/modules/classes.html#module-sklearn.feature_selection

from sklearn.datasets import load_digitsfrom sklearn.feature_selection import SelectKBest, chi2X, y = load_digits(return_X_y=True)# 特征选择X_new = SelectKBest(chi2, k=20).fit_transform(X, y)

3.5 罕用模型

官网链接:https://scikit-learn.org/stable/modules/classes.html

#KNN模型from sklearn.neighbors import KNeighborsClassifier#决策树from sklearn.tree import DecisionTreeClassifier#反对向量机from sklearn.svm import SVC#随机森林from sklearn.ensemble import RandomForestClassifier

3.6 建模仿合与预测

#拟合训练集knn.fit(X_train,y_train)#预测y_pred=knn.predict(X_test)

3.7 模型评估

官网链接:https://scikit-learn.org/stable/modules/classes.html#sklearn-metrics-metrics

#求精度knn.score(X_test,y_test)#绘制混同矩阵from sklearn.metrics import confusion_matrix#绘制ROC曲线from sklearn.metrics import roc_curve,roc_auc_score

3.8 典型的建模流程示例

典型的一个机器学习建模利用流程遵循【数据筹备】【数据预处理】【特色工程】【建模与评估】【模型优化】这样的一些流程环节。

# 加载数据import numpy as npimport urllib# 下载数据集url = "http://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"raw_data = urllib.urlopen(url)# 加载CSV文件dataset = np.loadtxt(raw_data, delimiter=",")# 辨别特色和标签X = dataset[:,0:7]y = dataset[:,8]# 数据归一化from sklearn import preprocessing# 幅度缩放scaled_X = preprocessing.scale(X)# 归一化normalized_X = preprocessing.normalize(X)# 标准化standardized_X = preprocessing.scale(X)# 特征选择from sklearn import metricsfrom sklearn.ensemble import ExtraTreesClassifiermodel = ExtraTreesClassifier()model.fit(X, y)# 特色重要度print(model.feature_importances_)# 建模与评估from sklearn import metricsfrom sklearn.linear_model import LogisticRegressionmodel = LogisticRegression()model.fit(X, y)print('MODEL')print(model)# 预测expected = ypredicted = model.predict(X)# 输入评估后果print('RESULT')print(metrics.classification_report(expected, predicted))print('CONFUSION MATRIX')print(metrics.confusion_matrix(expected, predicted))# 超参数调优from sklearn.model_selection import GridSearchCVparam_grid = {'penalty' : ['l1', 'l2', 'elasticnet'],              'C': [0.1, 1, 10]}grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5)

参考资料

  • 图解机器学习算法 | 从入门到精通系列
  • SKLearn官网:https://scikit-learn.org/stable/

ShowMeAI系列教程举荐

  • 图解Python编程:从入门到精通系列教程
  • 图解数据分析:从入门到精通系列教程
  • 图解AI数学根底:从入门到精通系列教程
  • 图解大数据技术:从入门到精通系列教程
  • 图解机器学习算法:从入门到精通系列教程
  • 机器学习实战:手把手教你玩转机器学习系列

相干文章举荐

  • Python机器学习算法利用实际
  • SKLearn入门与简略利用案例
  • SKLearn最全利用指南
  • XGBoost建模利用详解
  • LightGBM建模利用详解
  • Python机器学习综合我的项目-电商销量预估
  • Python机器学习综合我的项目-电商销量预估<进阶计划>
  • 机器学习特色工程最全解读
  • 自动化特色工程工具Featuretools利用
  • AutoML自动化机器学习建模