机器学习练习数据哪里找?两行代码搞定!
初学者学习机器学习的时候,经常会找不到练习的数据,实际上scikit-learn内置了很多可以用于机器学习的数据,可以用两行代码就可以使用这些数据。
一、自带数据集
自带的小的数据集为:sklearn.datasets.load_<name>
load_boston | Boston房屋价格 | 回归 | 506*13 |
fetch_california_housing | 加州住房 | 回归 | 20640*9 |
load_diabetes | 糖尿病 | 回归 | 442*10 |
load_digits | 手写字 | 分类 | 1797*64 |
load_breast_cancer | 乳腺癌 | 分类、聚类 | (357+212)*30 |
load_iris | 鸢尾花 | 分类、聚类 | (50*3)*4 |
load_wine | 葡萄酒 | 分类 | (59+71+48)*13 |
load_linnerud | 体能训练 | 多分类 | 20 |
怎么用:
数据集的信息关键字:
DESCR:
数据集的描述信息
data:
内部数据(即:X)
feature_names:
数据字段名
target:
数据标签(即:y)
target_names:
标签字段名(回归数据集无此项)
使用方法(以load_iris为例)
数据介绍:
一般用于做分类测试
有150个数据集,共分为3类,每类50个样本。每个样本有4个特征。
每条记录都有 4 项特征:包含4个特征(Sepal.Length(花萼长度)、Sepal.Width(花萼宽度)、Petal.Length(花瓣长度)、Petal.Width(花瓣宽度)),特征值都为正浮点数,单位为厘米。
可以通过这4个特征预测鸢尾花卉属于(iris-setosa(山鸢尾), iris-versicolour(杂色鸢尾), iris-virginica(维吉尼亚鸢尾))中的哪一品种。
第一步:
导入数据
from sklearn.datasets import load_iris
iris = load_iris()
第二步:定义X和y
X, y = iris.data, iris.target
此外,可以看下数据的维度:X.shape,y.shape
输出为:((150, 4), (150,))查看特征名:
iris.feature_names
输出为:['sepal length (cm)','sepal width (cm)','petal length (cm)','petal width (cm)']查看标签名:
iris.target_names
输出为:
array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
划分训练集和测试集:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)
这样就把训练集和测试集按照3比1划分了,接下来就可以用机器学习算法进行训练和测试了。
小技巧:将数据转换为Dataframe格式(两种方法都可以):
import pandas as pd
df_X = pd.DataFrame(iris.data, columns=iris.feature_names)
#这个是X
df_y = pd.DataFrame(iris.target, columns=["target"])
#这个是y
df=pd.concat([df_X,df2],axis=1)#横向合并
df.head()
或者:
import numpy as np
import pandas as pd
col_names = iris['feature_names'] + ['target']
df = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns=col_names)
df.head()
输出结果一致:
二、可在线下载的数据集(需要下载)
下载的数据集为:sklearn.datasets.fetch_<name>
这类数据需要在线下载,有点慢
fetch_20newsgroups |
用于文本分类、文本挖据和信息检索研究的国际标准数据集之一。数据集收集了大约20,000左右的新闻组文档,均匀分为20个不同主题的新闻组集合。返回一个可以被文本特征提取器 |
fetch_20newsgroups_vectorized |
这是上面这个文本数据的向量化后的数据,返回一个已提取特征的文本序列,即不需要使用特征提取器 |
fetch_california_housing |
加利福尼亚的房价数据,总计20640个样本,每个样本8个属性表示,以及房价作为target,所有属性值均为number,详情可调用fetch_california_housing()['DESCR']了解每个属性的具体含义; |
fetch_covtype |
森林植被类型,总计581012个样本,每个样本由54个维度表示(12个属性,其中2个分别是onehot4维和onehot40维),以及target表示植被类型1-7,所有属性值均为number,详情可调用fetch_covtype()['DESCR']了解每个属性的具体含义 |
fetch_kddcup99 |
KDD竞赛在1999年举行时采用的数据集,KDD99数据集仍然是网络入侵检测领域的事实Benckmark,为基于计算智能的网络入侵检测研究奠定基础,包含41项特征 |
fetch_lfw_pairs |
该任务称为人脸验证:给定一对两张图片,二分类器必须预测这两个图片是否来自同一个人。 |
fetch_lfw_people |
打好标签的人脸数据集 |
fetch_mldata |
从 mldata.org 中下载数据集 |
fetch_olivetti_faces |
Olivetti 脸部图片数据集 |
fetch_rcv1 |
路透社新闻语聊数据集 |
fetch_species_distributions |
物种分布数据集 |
使用方法与自带数据集一致,只是多了下载过程(示例:fetch_20newsgroups)
from sklearn.datasets import fetch_20newsgroups
news = fetch_20newsgroups(subset='all') #本次使用的数据需要到互联网上下载
from sklearn.model_selection import train_test_split
#对数据训练集和测试件进行划分
X_train, X_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.25, random_state=33)
三、生成数据集
可以用来分类任务,可以用来回归任务,可以用来聚类任务,用于流形学习的,用于因子分解任务的,用于分类任务和聚类任务的:这些函数产生样本特征向量矩阵以及对应的类别标签集合
make_blobs:多类单标签数据集,为每个类分配一个或多个正态分布的点集
make_classification:多类单标签数据集,为每个类分配一个或多个正态分布的点集,提供了为数据添加噪声的方式,包括维度相关性,无效特征以及冗余特征等
make_gaussian-quantiles:将一个单高斯分布的点集划分为两个数量均等的点集,作为两类
make_hastie-10-2:产生一个相似的二元分类数据集,有10个维度
make_circle和make_moons:产生二维二元分类数据集来测试某些算法的性能,可以为数据集添加噪声,可以为二元分类器产生一些球形判决界面的数据
举例:
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
X, y = make_moons(n_samples=100, noise=0.15, random_state=42)
plt.title('make_moons function example')
plt.scatter(X[:,0],X[:,1],marker='o',c=y)
plt.show()
四、其它数据集
kaggle:
https://www.kaggle.com
天池:
https://tianchi.aliyun.com/dataset
搜狗实验室:
http://www.sogou.com/labs/resource/list_pingce.php
DC竞赛:
https://www.pkbigdata.com/common/cmptIndex.html
DF竞赛:
https://www.datafountain.cn/datasets
总结
本文为机器学习初学者提供了使用scikit-learn内置数据的方法,用两行代码就可以使用这些数据,可以进行大部分的机器学习实验了。
参考
https://scikit-learn.org/stable/datasets/index.html
关于本站
“机器学习初学者”公众号由是黄海广博士创建,黄博个人知乎粉丝23000+,github排名全球前110名(32000+)。本公众号致力于人工智能方向的科普性文章,为初学者提供学习路线和基础资料。原创作品有:吴恩达机器学习个人笔记、吴恩达深度学习笔记等。
往期精彩回顾
那些年做的学术公益-你不是一个人在战斗
适合初学者入门人工智能的路线及资料下载
吴恩达机器学习课程笔记及资源(github标星12000+,提供百度云镜像)
吴恩达深度学习笔记及视频等资源(github标星8500+,提供百度云镜像)
《统计学习方法》的python代码实现(github标星7200+)
精心整理和翻译的机器学习的相关数学资料
首发:深度学习入门宝典-《python深度学习》原文代码中文注释版及电子书
备注:加入本站微信群或者qq群,请回复“加群”
加入知识星球(4300+用户,ID:92416895),请回复“知识星球”
机器学习练习数据哪里找?两行代码搞定!相关推荐
- 成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!)
成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!) 目录 解决问题 解决思路 解决方法 解决问题 numpy.ndarray格式类型转数据为list格式数据 ...
- 自带的数据集_机器学习练习数据哪里找?两行代码搞定!
初学者学习机器学习的时候,经常会找不到练习的数据,实际上scikit-learn内置了很多可以用于机器学习的数据,可以用两行代码就可以使用这些数据. 一.自带数据集 自带的小的数据集为:sklearn ...
- 用Python进行屏幕截图,只用两行代码搞定
一.计算机中如何进行屏幕截图呢? 1.全屏截图 按下键盘中的'PRTSC'或者'Print Screen'键,即可实现全屏截图(不同键盘位置和名称可能不同).此时,并不能看到效果,只是将截图保存在粘贴 ...
- python实现屏幕截图_电脑截屏操作有哪些,用Python进行屏幕截图,只用两行代码搞定...
对于自媒体作者或者经常编辑进行文本编辑的人来讲,屏幕截图应该是一个很常见的操作.今天,带大家一起体验一下Python屏幕截图的操作,通过这篇内容你可以复习以下知识点: Python截图屏幕图片 使用P ...
- 两行代码搞定iOS自定义HUD风格动画弹窗(支持选择记录) - SKChoosePopView的使用和实现思路
作者 ShevaKuilin 关注 2017.03.25 18:28* 字数 2014 阅读 270评论 0喜欢 23 さらい屋五葉 原文地址----> MyBlog HUD风格的选项弹窗是我们 ...
- 一气之下,我一行代码搞定了约瑟夫环问题,面试官懵了
大家好,我是帅地. 对于约瑟夫环问题估计大家都听说过,除非你刚刚读大一,因为在大一大部分学校的课本都会降到这个算法题.为了以防万一你没听过,我还是给下问题的描述 问题描述:编号为 1-N 的 N 个士 ...
- Python 数据可视化:Stack Graph 堆叠图,标准化堆叠柱形图,标准化的同时还能反应数据量大小的堆叠图(放入自写库,一行代码搞定复杂细节绘图)
本文已在公众号 " 数据分析与商业实践 " 首发.关注一下~,更多商业数据分析案例源码等你来撩.后台回复 "堆叠图" ,即可获取本文的案例示范与包含详细注释的源 ...
- 【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!
来源:Python数据科学 作者:东哥起飞 本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel "条件格式"! 系列内容,请看????「pa ...
- python做事件研究法_35行代码搞定事件研究法(上)
作者简介: 祝小宇,个人公众号:大猫的R语言课堂 这期大猫课堂将会教大家如何用35行R代码写出最有效率的事件研究法. 注意,本代码主要使用data.table完成,关于data.table包的相应知识 ...
最新文章
- linux内核之accept实现
- android studio m1,Android Studio 4.0发布 为Android 11做好准备
- g120变频器报7490怎么处理_西门子通讯profinet网络下怎么更换G120变频器等部件
- Java黑皮书课后题第3章:**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠
- linux处理机调度实验报告,模拟Linux操作系统下处理机调度实验报告
- 前端学习(94):css重置样式
- 西欧八国调查:25%受访者宁要AI政府也不要民选政治家
- mapreduce复制连接的代码_我的 Hive 为什么跑不起来/跑得慢?看看是不是少了这几行代码?...
- 微型计算机出版时间,《微型计算机技术》低价购书_陈慈发 主编_计算机与互联网_孔网...
- 小米不加入鸿蒙,是华为不给小米用鸿蒙,还是小米拒绝使用鸿蒙?
- java赋值兼容原则,多态问题抛出(赋值兼容性原则遇上父类与子类同名函数的时候)...
- 此图片来自微信公众平台未经允许不可引用 解决方法
- Android Multimedia框架总结(十七)音频开发基础知识
- aliplayer播放rtmp视频流
- 数字图像处理 离散余弦变换(DCT)和峰值信噪比(PSNR)
- 【敏捷开发】什么是自组织团队?
- 魔兽争霸英雄英语名称
- mysql怎么写外键支持级联删除_MySQL外键级联删除不起作用,完全难倒
- java 随机发牌_java实现扑克牌发牌器
- nfc充值java_实测北京公交一卡通NFC手机充值
热门文章
- 课后作业-结对编程项目总结
- Statement, PreparedStatement和CallableStatement的区别
- The Reflection And Amplification Attacks NTP Reply Flood Attack Based On NTP
- mysql日期加减问题
- UI层调用WCF服务实例(源码)
- 三月疯狂——最终结果 / March Madness – Final Score
- 24继承父类并实现多个接口
- PyCharm出现module ‘matplotlib’ has no attribute ‘verbose问题
- android官方夜间模式,Android夜间模式实践
- python memoryerror_使用Scikit-learn时的Python MemoryError