初学者学习机器学习的时候,经常会找不到练习的数据,实际上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),请回复“知识星球

机器学习练习数据哪里找?两行代码搞定!相关推荐

  1. 成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!)

    成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!) 目录 解决问题 解决思路 解决方法 解决问题 numpy.ndarray格式类型转数据为list格式数据 ...

  2. 自带的数据集_机器学习练习数据哪里找?两行代码搞定!

    初学者学习机器学习的时候,经常会找不到练习的数据,实际上scikit-learn内置了很多可以用于机器学习的数据,可以用两行代码就可以使用这些数据. 一.自带数据集 自带的小的数据集为:sklearn ...

  3. 用Python进行屏幕截图,只用两行代码搞定

    一.计算机中如何进行屏幕截图呢? 1.全屏截图 按下键盘中的'PRTSC'或者'Print Screen'键,即可实现全屏截图(不同键盘位置和名称可能不同).此时,并不能看到效果,只是将截图保存在粘贴 ...

  4. python实现屏幕截图_电脑截屏操作有哪些,用Python进行屏幕截图,只用两行代码搞定...

    对于自媒体作者或者经常编辑进行文本编辑的人来讲,屏幕截图应该是一个很常见的操作.今天,带大家一起体验一下Python屏幕截图的操作,通过这篇内容你可以复习以下知识点: Python截图屏幕图片 使用P ...

  5. 两行代码搞定iOS自定义HUD风格动画弹窗(支持选择记录) - SKChoosePopView的使用和实现思路

    作者 ShevaKuilin 关注 2017.03.25 18:28* 字数 2014 阅读 270评论 0喜欢 23 さらい屋五葉 原文地址----> MyBlog HUD风格的选项弹窗是我们 ...

  6. 一气之下,我一行代码搞定了约瑟夫环问题,面试官懵了

    大家好,我是帅地. 对于约瑟夫环问题估计大家都听说过,除非你刚刚读大一,因为在大一大部分学校的课本都会降到这个算法题.为了以防万一你没听过,我还是给下问题的描述 问题描述:编号为 1-N 的 N 个士 ...

  7. Python 数据可视化:Stack Graph 堆叠图,标准化堆叠柱形图,标准化的同时还能反应数据量大小的堆叠图(放入自写库,一行代码搞定复杂细节绘图)

    本文已在公众号 " 数据分析与商业实践 " 首发.关注一下~,更多商业数据分析案例源码等你来撩.后台回复 "堆叠图" ,即可获取本文的案例示范与包含详细注释的源 ...

  8. 【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!

    来源:Python数据科学 作者:东哥起飞 本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel "条件格式"! 系列内容,请看????「pa ...

  9. python做事件研究法_35行代码搞定事件研究法(上)

    作者简介: 祝小宇,个人公众号:大猫的R语言课堂 这期大猫课堂将会教大家如何用35行R代码写出最有效率的事件研究法. 注意,本代码主要使用data.table完成,关于data.table包的相应知识 ...

最新文章

  1. linux内核之accept实现
  2. android studio m1,Android Studio 4.0发布 为Android 11做好准备
  3. g120变频器报7490怎么处理_西门子通讯profinet网络下怎么更换G120变频器等部件
  4. Java黑皮书课后题第3章:**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠
  5. linux处理机调度实验报告,模拟Linux操作系统下处理机调度实验报告
  6. 前端学习(94):css重置样式
  7. 西欧八国调查:25%受访者宁要AI政府也不要民选政治家
  8. mapreduce复制连接的代码_我的 Hive 为什么跑不起来/跑得慢?看看是不是少了这几行代码?...
  9. 微型计算机出版时间,《微型计算机技术》低价购书_陈慈发 主编_计算机与互联网_孔网...
  10. 小米不加入鸿蒙,是华为不给小米用鸿蒙,还是小米拒绝使用鸿蒙?
  11. java赋值兼容原则,多态问题抛出(赋值兼容性原则遇上父类与子类同名函数的时候)...
  12. 此图片来自微信公众平台未经允许不可引用 解决方法
  13. Android Multimedia框架总结(十七)音频开发基础知识
  14. aliplayer播放rtmp视频流
  15. 数字图像处理 离散余弦变换(DCT)和峰值信噪比(PSNR)
  16. 【敏捷开发】什么是自组织团队?
  17. 魔兽争霸英雄英语名称
  18. mysql怎么写外键支持级联删除_MySQL外键级联删除不起作用,完全难倒
  19. java 随机发牌_java实现扑克牌发牌器
  20. nfc充值java_实测北京公交一卡通NFC手机充值

热门文章

  1. 课后作业-结对编程项目总结
  2. Statement, PreparedStatement和CallableStatement的区别
  3. The Reflection And Amplification Attacks NTP Reply Flood Attack Based On NTP
  4. mysql日期加减问题
  5. UI层调用WCF服务实例(源码)
  6. 三月疯狂——最终结果 / March Madness – Final Score
  7. 24继承父类并实现多个接口
  8. PyCharm出现module ‘matplotlib’ has no attribute ‘verbose问题
  9. android官方夜间模式,Android夜间模式实践
  10. python memoryerror_使用Scikit-learn时的Python MemoryError