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

sklearn的系统学习——随机森林调参(含案例及完整python代码) 对于调参,首先需要明白调参的核心问题是什么,然后理清思路,再进行调参。调参并非是一件容易的事情,很多大牛靠的是多年积累的经验和清晰的处理思路,那对于我们而言,也应对调参思路和方向有一个认识,然后就是不断地尝试。...... 阅读详情

作者:韩信子@ShowMeAI
教程地址:https://www.showmeai.tech/tutorials/41
本文地址:https://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 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

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

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

相关文章推荐

机器学习很难,sklearn很简单 Scikit learn 也简称 sklearn, 是机器学习领域当中最知名的 python 模块之一.Sklearn 包含了很多种机器学习的方式: - Classification 分类 - Regression 回归 - Clustering 非监督分类 - Dimensionality reduction 数据降维 - Model Selection 模型选择 - Preprocessing 数据预处理 我们总能够从这些方法中挑选出一个适合于自己问题的, 然后用来 阅读详情

相关推荐

机器学习实战 | SKLearn最全应用指南

Python微信订餐小程序课程视频 https://edu.youkuaiyun.com/course/detail/36074 Python实战量化交易理财系统 https://edu.youkuaiyun.com/course/detail/35475 作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/41 本文地址:http://www.showmeai.tech/article-detail/203 声明:版权所有,转载请联系平台与作者并注明出处 收藏Show

xuhss_com的博客 1917

使用sklearn,keras进行机器学习案例(1)

机器学习笔记

Fine的优快云博客 1850

菜菜的机器学习sklearn实战-----sklearn入门与决策树

菜菜的机器学习sklearn实战-----sklearn入门 菜菜的机器学习sklearn实战-----sklearn入门sklearn入门决策树概述决策树是如何工作的sklearn中的决策树sklearn 建模流程DecisionTreeClassifier与红酒数据基本流程重要参数criterionrandom_state&splitter建立一棵树剪枝参数max_depthmin_s...

Avery123123的博客 4753

Sklearn详细案例

Sklearn详细案例

PeterClerk的博客 891

机器学习之sklearn介绍与应用

scikit-learn(简称sklearn)是一个用于机器学习的Python库。它包含了各种机器学习算法和工具,可以帮助我们快速地构建、评估和部署机器学习模型。sklearn提供了丰富的功能和接口,涵盖了从数据预处理到特征提取和选择、模型训练和评估、模型优化和部署等各个环节。它支持各种常见的监督学习和无监督学习算法,如线性回归、逻辑回归、决策树、支持向量机、朴素贝叶斯、聚类等。数据准备:将原始数据转化为sklearn可以处理的格式,包括将标签编码为数字、处理缺失值、归一化等。

runqu的博客 1815

Sklearn 快速入门

学习资料:大家可以去莫烦的学习网站学到更多的知识。本文结构: Sklearn 简介 选择模型流程 应用模型 Sklearn 简介 Scikit learn 也简称 sklearn, 是机器学习领域当中最知名的 python 模块之一.Sklearn 包含了很多种机器学习的方式: Classification 分类 Regression 回归 Clustering 非监督分类 Dimensional

aliceyangxi1987的博客 6920

Python 入门学习 (机器学习+深度学习 项目实战)

一 :Python运行软件(Pycharm,Anaconda) 二 :python 环境配置 (Pycharm+Anaconda) 三 :Ancaonda+tensorflow+sklearn+python3.5安装 四 :简单程序实现(Spyder,Pycharm 运行展示) 五 :机器学习项目实战 六 :深度学习项目案例(猫狗大战,数字手写体识别)

CNTJU的博客 7637

【机器学习项目实战案例目录】项目详解 + 完整源码

本专栏整理了《机器学习项目实战案例》,内包含了各种不同的入门级机器学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 3万+

ML之sklearn:sklearn.metrics中confusion_matrix函数、make_scorer函数解读、案例应用之详细攻略

​ ML之sklearn:sklearn.metrics中confusion_matrix函数、make_scorer函数解读、案例应用之详细攻略 目录 sklearn.metrics中常用的函数参数 sklearn.metrics.confusion_matrix函数 sklearn.metrics.make_scorer()函数 推荐文章 ML:分类预测问题中评价指标(ER/混淆矩阵P-R-F1/ROC-AUC/RP/mAP)简介、使用方法、代码实现、案例应用之详细攻略 CNN之性能指

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 8420

Python机器学习库scikitlearn详解及案例实战

作者:禅与计算机程序设计艺术 1.背景介绍 概述 Scikit-learn是一个开源的Python机器学习库,它提供了各种机器学习算法、模型参数估计方法以及数据集加载等功能,是进行机器学习任务的必备工具。本文将对Scikit-learn库中重要的核心模块及算法进行深

AI天才研究院 988

猿创征文|Python-sklearn机器学习之旅:我的第一个机器学习实战项目

从开始学习机器学习到现在已经有三年了,建模过程以及各类模型使用场景都有个大致的掌握。其中我感觉在我所有的机器学习文章中缺少一篇真正引人入门的文章。任何情况迈开学习的第一步都是比较困难的,学习的成本是很高的,相对你学会了收益也高。尤其是机器学习这种数学和逻辑能力强关联的学科,是比较难上手的事,但是当真正做出来了开始上手了便会产生一种兴奋喜悦感,我感觉这才是我为什么从事数据挖掘建模工作这一原因。写这篇文章我希望其他小伙伴想要入门机器学习的时候不用太过于担心自己的能力,先尝试着迈开自己的第一步做做看。......

master_hunter的博客 3760

机器学习---基于sklearn的机器学习入门

文章是基于sklearn进行机器学习的入门,主要讲述从最基本的数据集的获取和划分开始说起,接着讲述了特征工程中的特征提取 特征预处理以及特征降维,在分类算法中,主要讲述了KNN算法 朴素贝叶斯以及决策树和随机森林,在其中又广度的学习了模型选择和恶调优,其中交叉验证以及超参数网格法也是十分重要.讲完了分类算法,又开始讲述回归算法,在回归算法中学习了损失函数以及优化算法,也学习了过拟合和欠拟合以及相对的优化模型,在此也学习一个重要的分类算法--逻辑回归,在最后学习了最后一个算法---无监督学习--聚类算法

2401_84605487的博客 1158

Python使用sklearn实现的各种回归算法示例

主要介绍了Python使用sklearn实现的各种回归算法,结合实例形式分析了Python使用sklearn库实现的决策树回归、线性回归、SVM回归、KNN回归、随机森林回归等各种回归算法,需要的朋友可以参考下

《菜菜的机器学习sklearn课堂》sklearn入门与决策树

决策树sklearn简介决策树 - 概述决策树是如何工作的sklearn中的决策树DecisionTreeClassifier重要参数criterion建立一颗树(只有一个参数)random_state、splitter剪枝参数目标权重参数重要属性 feature_importances_常用接口 fit、score、apply、predict实例:分类树在合成数集上的表现 课程要求的配置如下,但是环境只要 >= 它即可。 Python 3.7.1 Scikit-learn 0.20.0 Graph

萌宅鹿的技术小屋 6321

keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解

单片机的调试分为两种,一种是使用软件模拟调试,第二种是硬件调试,两种调试方式各有不同,软件模拟调试有误差,而硬件调试,借用仿真器调试是嵌入式开发中常用方法。

weixin_51624736的博客 3万+

ADS入门学习笔记——射频振荡器的设计

振荡器是射频系统中的基本部件之一,可以将直流功率转换为射频功率,在特定的频率点建立起稳定的正弦振荡,成为所需的射频信号源。

weixin_42126696的博客 8952

PySpark ML——分布式机器学习库

导读继续PySpark学习之路,本篇开启机器学习子模块的介绍,不会更多关注机器学习算法原理,仅对ML库的基本框架和理念加以介绍。最后用一个小例子实战对比下sklearn与pyspark....

小数志 916

高通量测序数据分析:RNA-seq

深度测序相关数据库与数据格式 SRA toolkit 一、NCBI 和EBI、DDBJ组成INSDC,数据内容相同所以找NCBI就行。 (一)NCBI常用数据库 GenBank:遗传序列数据库,收集了所有公开的DNA序列及其注释 GEO (Gene Expression Omnibus) :收集整理各种表达芯片数据,后来加入了甲基化、lncRNA、miRNA、CNV等其他芯片,还有高通量测序数据...

qq_41134363的博客 3万+

ML/DL科普向:从Sklearn到TensorFlow

本文为数据茶水间群友原创,经授权在本公众号发表。关于作者:Japson,职场新人。某人工智能公司AI平台研发工程师,专注于AI工程化及场景落地。持续学习中,期望与大家多多...

木东居士 775

一起玩转GNU Radio:调制解调大合集

本文汇总了GNU Radio中多种常见的调制解调方法及其参考文献链接,便于今后查看,供大家参考!

无线通信实验室 1万+

REST-meta-MDD Data总结

sMRI数据使用:nwc1、nwc2、nwc3(同样数据集相关论坛中有相关信息指向需要使用wc1、wc2、wc3)多方咨询与讨论后决定使用nwc数据,这里说明wc数据相对wc数据要大的多如wc1的大小为1.33GB,而nwc1的数据却有6.90GB。VBM文件:/REST-meta-MDD/Sharing/REST-meta-MDD-VBM- phase1 -Sharing.tar.gz。1、Excel中的表型信息:1-男,2-女;-9999或空白表示缺少数据。

2404_88295660的博客 1542

机器学习KNN算法中sklearn的简单应用

k-nearest neighbors,通过寻找k个距离最近的数据,来确定当前数据值的大小或类别。是机器学习中最为简单和经典的一个算法。

m0_65065095的博客 618

手把手教你学Simulink--基于飞轮储能系统的场景实例:飞轮储能与锂电池混合储能系统的协同控制

本文详细介绍了基于Simulink的飞轮储能与锂电池混合储能系统协同控制建模方法。通过高通/低通滤波器实现功率分配,使飞轮处理高频波动(±100kW),锂电池承担削峰填谷(50kW)。仿真结果表明,该系统效率达88%,锂电池循环次数减少90%,投资成本比纯电池方案节省200万美元。文章包含完整的建模步骤、控制策略设计和多场景仿真分析,为构建高效、长寿、经济的智能储能系统提供了实用解决方案。

MHD0815的博客 343
上一篇: 机器学习实战 | Python机器学习算法应用实践
下一篇: 机器学习实战 | SKLearn最全应用指南
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShowMeAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值