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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 本篇内容介绍了SKLearn的核心板块,并通过SKLearn自带的数据集,讲解一个典型应用案例。

ShowMeAI研究中心

作者:韩信子@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 做一个介绍。

入门与简单应用案例; SKLearn & Python; SKLearn; 2-1

1.SKLearn是什么

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

入门与简单应用案例; SKLearn—; 分类 / 回归 / 聚类; SKLearn; 2-2

入门与简单应用案例; SKLearn—降维 / 模型; 评估 / 数据预处理; SKLearn; 2-3

在 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

入门与简单应用案例; SKLearn常用接口; 数据集导入; SKLearn; 2-4

#鸢尾花数据集
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

入门与简单应用案例; SKLearn常用接口; 数据预处理; SKLearn; 2-5

#拆分数据集
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

入门与简单应用案例; SKLearn常用接口; 特征抽取; SKLearn; 2-6

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

入门与简单应用案例; SKLearn常用接口; 特征选择; SKLearn; 2-7

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

入门与简单应用案例; SKLearn常用接口; 常用模型; SKLearn; 2-8

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

3.6 建模拟合与预测

入门与简单应用案例; SKLearn常用接口; 建模拟合与预测; SKLearn; 2-9

#拟合训练集
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

入门与简单应用案例; SKLearn常用接口; 模型评估; 2-10

#求精度
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 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 系列教程推荐

ShowMeAI用知识加速每一次技术成长

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
1月前
|
机器学习/深度学习 数据采集 算法
深入了解机器学习:从入门到应用
【10月更文挑战第6天】深入了解机器学习:从入门到应用
|
22天前
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
49 5
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
36 2
|
27天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
30 1
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
23 1
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
55 2
|
1月前
|
机器学习/深度学习 人工智能 算法
揭开深度学习与传统机器学习的神秘面纱:从理论差异到实战代码详解两者间的选择与应用策略全面解析
【10月更文挑战第10天】本文探讨了深度学习与传统机器学习的区别,通过图像识别和语音处理等领域的应用案例,展示了深度学习在自动特征学习和处理大规模数据方面的优势。文中还提供了一个Python代码示例,使用TensorFlow构建多层感知器(MLP)并与Scikit-learn中的逻辑回归模型进行对比,进一步说明了两者的不同特点。
67 2
|
1月前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
75 1
|
1月前
|
机器学习/深度学习 人工智能 数据挖掘
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第6天】在人工智能领域,机器学习已成为核心技术。本文指导初学者使用Python与Scikit-learn入门机器学习,涵盖基本概念、环境搭建、数据处理、模型训练及评估等环节。Python因简洁性及其生态系统成为首选语言,而Scikit-learn则提供了丰富工具,简化数据挖掘与分析流程。通过实践示例,帮助读者快速掌握基础知识,为进一步深入研究奠定坚实基础。
28 4
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
475 1

热门文章

最新文章

下一篇
无影云桌面