楼主: 陶晓莹
1655 4

[程序分享] 使用sklearn转换器处理数据 [推广有奖]

  • 0关注
  • 0粉丝

VIP1

小学生

92%

还不是VIP/贵宾

-

威望
0
论坛币
1140 个
通用积分
4.9099
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1162 点
帖子
6
精华
0
在线时间
11 小时
注册时间
2018-10-22
最后登录
2020-7-6

楼主
陶晓莹 发表于 2020-4-12 19:27:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
scikit-learn这个库结合了很多机器学习的算法,可以帮助使用者在数据分析中进行一个快速建模,并且这个模型,接口相对来说会较统一,使用起来比较方便。同时,scikit-learn有优秀的官方文档,里面的知识点、内容较丰富,适合我们学习入门。那么接下来就基于官方文档来给大家去做一个scikit-learn的基础语法、数据预处理等方面的介绍。主要从以下的四个方面来介绍。
  • 使用sklearn转换器处理数据
  • 构建并评价聚类模型
  • 构建并评价分类模型
  • 构建并评价回归模型
    说明一下:这篇文章先介绍第一点使用sklearn转换器处理数据。(ps:由于发帖的字节限制,可能得分成两个帖子发出去了,这个是上篇)接下来,看情况,有时间的话会继续补充后面的内容。


加载datasets模块中数据集

☀datasets模块常用数据集加载函数及其解释:

⭐sklearn库的datasets模块集成了部分数据分析的经典数据集,可以使用这些数据集进行数据预处理,建模等操作,熟悉sklearn的数据处理流程和建模流程。

⭐datasets模块常用数据集的加载函数与解释如下表所示。

捕获7.JPG

⭐使用sklearn进行数据预处理会用到sklearn提供的统一接口——转换器(Transformer)。

⭐加载后的数据集可以视为一个字典,几乎所有的sklearn数据集均可以使用data,target,feature_names,DESCR分别获取数据集的数据,标签,特征名称和描述信息。

代码如下:

from sklearn.datasets import load_boston

data = load_boston()

data.keys() #查看键名称,如下所示分别对应:

data['data']  #返回多维数组,提取data,波士顿房价所有属性的数据



将数据集划分为训练集和测试集

常用划分方式:
⭐在数据分析过程中,为了保证模型在实际系统中能够起到预期作用,一般需要将样本分成独立的三部分: •训练集(train set):用于估计模型。
•验证集(validation set):用于确定网络结构或者控制模型复杂程度的参数。
•测试集(test set):用于检验最优的模型的性能。
⭐典型的划分方式是训练集占总样本的50%,而验证集和测试集各占25%

K折交叉验证法:

⭐当数据总量较少的时候,使用上面的方法将数据划分为三部分就不合适了。
⭐常用的方法是留少部分做测试集,然后对其余N个样本采用K折交叉验证法,基本步骤如下:
•将样本打乱,均匀分成K份
•轮流选择其中K-1份做训练,剩余的一份做验证。
•计算预测误差平方和,把K次的预测误差平方和的均值作为选择最优模型结构的依据。

train_test_split函数:

⭐sklearn的model_selection模块提供了train_test_split函数,能够对数据集进行拆分,其使用格式如下。

sklearn.model_selection.train_test_split(*arrays, **options)
[table=98%]
[tr][td=155]  

参数名称

  [/td][td=756]  

说明

  [/td][/tr]
[tr][td=155]  

*arrays

  [/td][td=756]  

接收一个或多个数据集。代表需要划分的数据集,若为分类回归则分别传入数据和标签,若为聚类则传入数据。无默认。

  [/td][/tr]
[tr][td=155]  

test_size

  [/td][td=756]  

接收float,int,None类型的数据。代表测试集的大小。如果传入的为float类型的数据则需要限定在0-1之间,代表测试集在总数中的占比;如果传入为int类型的数据,则表示测试集记录的绝对数目。该参数与train_size可以只传入一个。在0.21版本前,若test_size和train_size均为默认则testsize为25%。

  [/td][/tr]
[tr][td=155]  

train_size

  [/td][td=756]  

接收float,int,None类型的数据。代表训练集的大小。该参数与test_size可以只传入一个。

  [/td][/tr]
[tr][td=155]  

random_state

  [/td][td=756]  

接收int。代表

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


已有 1 人评分经验 收起 理由
yunnandlg + 100 If you can take it, you can make it. 敢于.

总评分: 经验 + 100   查看全部评分

沙发
陶晓莹 发表于 2020-4-12 19:40:10
后面的编辑出了点问题,不知道是为什么,我编辑的表格和图片没显示出来,等会我改一下后面的,发下篇给大家看看。预告:下篇我简单介绍一下PCA降维算法函数。谢谢大家的阅读。

藤椅
陶晓莹 发表于 2020-4-12 20:01:35
陶晓莹 发表于 2020-4-12 19:40
后面的编辑出了点问题,不知道是为什么,我编辑的表格和图片没显示出来,等会我改一下后面的,发下篇给大家 ...
累,刚刚我刚把下篇编辑好,结果提交的时候不知道怎么回事,卡住了,编辑的全部不见了

板凳
陶晓莹 发表于 2020-4-12 20:01:59
陶晓莹 发表于 2020-4-12 19:40
后面的编辑出了点问题,不知道是为什么,我编辑的表格和图片没显示出来,等会我改一下后面的,发下篇给大家 ...
累,刚刚我刚把下篇编辑好,结果提交的时候不知道怎么回事,卡住了,编辑的全部不见了

报纸
yunnandlg 在职认证  学生认证  发表于 2020-4-13 14:11:28
If you can take it, you can make it.
敢于实践,方能实现。


谢谢分享

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-21 14:43