首页
学习
活动
专区
圈层
工具
发布
1
机器学习实战 | Python机器学习算法应用实践
2
机器学习实战 | SKLearn入门与简单应用案例
3
机器学习实战 | SKLearn最全应用指南
4
机器学习实战 | XGBoost建模应用详解
5
机器学习实战 | LightGBM建模应用详解
6
机器学习实战 | 综合项目-电商销量预估
7
机器学习实战 | 综合项目-电商销量预估进阶方案
8
机器学习实战 | 机器学习特征工程最全解读
9
机器学习实战 | 自动化特征工程工具Featuretools应用
10
机器学习实战 | AutoML自动化机器学习建模
11
图数据挖掘!使用图分析+AI进行保险欺诈检测 ⛵
12
20 行代码!带你快速构建基础文本搜索引擎 ⛵
13
员工离职困扰?来看AI如何解决,基于人力资源分析的 ML 模型构建全方案 ⛵
14
AI 音辨世界:艺术小白的我,靠这个AI模型,速识音乐流派选择音乐 ⛵
15
钻石价格预测的ML全流程!从模型构建调优道部署应用!⛵
16
二手车价格预测 | 构建AI模型并部署Web应用 ⛵
17
毫秒级!千万人脸库快速比对,上亿商品图片检索,背后的极速检索用了什么神器? ⛵
18
机器学习模型太慢?来看看英特尔(R) 扩展加速 ⛵
19
全自动化机器学习建模!效果吊打初级炼丹师! ⛵
20
机器学习建模高级用法!构建企业级AI建模流水线 ⛵
21
2022了你还不会『低代码』?数据科学也能玩转Low-Code啦! ⛵
22
AI带你省钱旅游!精准预测民宿房源价格!
23
精准营销!用机器学习完成客户分群!⛵
24
2022极端高温!机器学习如何预测森林火灾?⛵ 万物AI
25
2022年Python顶级自动化特征工程框架⛵
26
AI医疗高精尖!基于AI的新药研发!⛵
27
数据驱动!精细化运营!用机器学习做客户生命周期与价值预估!⛵
28
2022!影响百万用户金融信用评分,Equifax被告上法庭,罪魁祸首——『数据漂移』!⛵
29
精准用户画像!商城用户分群2.0!⛵
30
代码案例详解!如何让机器学习模型自解释!⛵
31
whylogs工具库的工业实践!机器学习模型流程与效果监控 ⛵
32
一文读懂!异常检测全攻略!从统计方法到机器学习 ⛵
33
图解来啦!机器学习工业部署最佳实践!10分钟上手机器学习部署与大规模扩展 ⛵
34
『航班乘客满意度』场景数据分析建模与业务归因解释 ⛵
35
全都会!预测蛋白质标注!创建讲义!解释数学公式!最懂科学的智能NLP模型Galactica尝鲜 ⛵
36
深度解析数据清理和特征工程!5本面向数据科学家的顶级书籍推荐 ⛵
37
就离谱!使用机器学习预测2022世界杯:小组赛挺准,但冠亚季军都错了 ⛵

机器学习实战 | SKLearn入门与简单应用案例

作者:韩信子@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非常简单,命令行窗口中输入命令:

代码语言:text
复制
pip install scikit-learn

我们也可以使用清华镜像源安装,通常速度会更快一些:

代码语言:text
复制
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

代码语言:python
代码运行次数:0
复制
#鸢尾花数据集
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

代码语言:python
代码运行次数:0
复制
#拆分数据集
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

代码语言:python
代码运行次数:0
复制
from sklearn.feature_extraction import DictVectorizer
v = 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

代码语言:python
代码运行次数:0
复制
from sklearn.datasets import load_digits
from sklearn.feature_selection import SelectKBest, chi2
X, 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

代码语言:python
代码运行次数:0
复制
#KNN模型
from sklearn.neighbors import KNeighborsClassifier
#决策树
from sklearn.tree import DecisionTreeClassifier
#支持向量机
from sklearn.svm import SVC
#随机森林
from sklearn.ensemble import RandomForestClassifier

3.6 建模拟合与预测

代码语言:python
代码运行次数:0
复制
#拟合训练集
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

代码语言:python
代码运行次数:0
复制
#求精度
knn.score(X_test,y_test)
#绘制混淆矩阵
from sklearn.metrics import confusion_matrix
#绘制ROC曲线
from sklearn.metrics import roc_curve,roc_auc_score

3.8 典型的建模流程示例

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

代码语言:python
代码运行次数:0
复制
# 加载数据
import numpy as np
import 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 metrics
from sklearn.ensemble import ExtraTreesClassifier
model = ExtraTreesClassifier()
model.fit(X, y)
# 特征重要度
print(model.feature_importances_)

# 建模与评估
from sklearn import metrics
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X, y)
print('MODEL')
print(model)
# 预测
expected = y
predicted = 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 GridSearchCV
param_grid = {'penalty' : ['l1', 'l2', 'elasticnet'],
              'C': [0.1, 1, 10]}
grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5)

参考资料

ShowMeAI系列教程推荐

下一篇
举报
领券