【机器学习】sklearn数据集获取、分割、分类和回归

sklearn数据集

  • 1、数据集划分
    • 1.1 获取数据
    • 1.2 获取数据返回的类型
      • 举个栗子:
    • 1.3 对数据集进行分割
      • 举个栗子:
  • 2、 sklearn分类数据集
  • 3、 sklearn回归数据集

1、数据集划分

机器学习一般的数据集会划分为两个部分:
训练数据:用于训练,构建模型(分类、回归和聚类)
测试数据:在模型检验时使用,用于评估模型是否有效
划分的时候一般就是75%和25%的比例。

sklearn数据集划分API:sklearn.model_selection.train_test_split

1.1 获取数据

分为两种,一个是在datasets中的直接加载可以使用的,另一个一个是需要下载的大规模的数据集。

sklearn.datasets
加载获取流行数据集
datasets.load_*()
获取小规模数据集,数据包含在datasets里datasets.fetch_*(data_home=None)
获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/

1.2 获取数据返回的类型

load*和fetch*返回的数据类型datasets.base.Bunch(字典格式)data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组target:标签数组,是 n_samples 的一维 numpy.ndarray 数组DESCR:数据描述feature_names:特征名,新闻数据,手写数字、回归数据集没有target_names:标签名

**

举个栗子:

**
sklearn.datasets.load_iris() 加载并返回鸢尾花数据集
在这里插入图片描述
这是一个150行4列的矩阵数组。来看一下如何实现数据加载的:

from sklearn.datasets import load_iris
li = load_iris()
print("获取特征值")
print(li.data)
print("目标值")
print(li.target)

其中li就是datasets.base.Bunch的格式,
然后运行输出:

目标值
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2]
.. _iris_dataset:Iris plants dataset
--------------------**Data Set Characteristics:**:Number of Instances: 150 (50 in each of three classes):Number of Attributes: 4 numeric, predictive attributes and the class:Attribute Information:- sepal length in cm- sepal width in cm- petal length in cm- petal width in cm- class:- Iris-Setosa- Iris-Versicolour- Iris-Virginica:Summary Statistics:============== ==== ==== ======= ===== ====================Min  Max   Mean    SD   Class Correlation============== ==== ==== ======= ===== ====================sepal length:   4.3  7.9   5.84   0.83    0.7826sepal width:    2.0  4.4   3.05   0.43   -0.4194petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)============== ==== ==== ======= ===== ====================:Missing Attribute Values: None:Class Distribution: 33.3% for each of 3 classes.:Creator: R.A. Fisher:Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov):Date: July, 1988The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken
from Fisher's paper. Note that it's the same as in R, but not as in the UCI
Machine Learning Repository, which has two wrong data points.This is perhaps the best known database to be found in the
pattern recognition literature.  Fisher's paper is a classic in the field and
is referenced frequently to this day.  (See Duda & Hart, for example.)  The
data set contains 3 classes of 50 instances each, where each class refers to a
type of iris plant.  One class is linearly separable from the other 2; the
latter are NOT linearly separable from each other... topic:: References- Fisher, R.A. "The use of multiple measurements in taxonomic problems"Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions toMathematical Statistics" (John Wiley, NY, 1950).- Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.(Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.- Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New SystemStructure and Classification Rule for Recognition in Partially ExposedEnvironments".  IEEE Transactions on Pattern Analysis and MachineIntelligence, Vol. PAMI-2, No. 1, 67-71.- Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule".  IEEE Transactionson Information Theory, May 1972, 431-433.- See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al"s AUTOCLASS IIconceptual clustering system finds 3 classes in the data.- Many, many more ...Process finished with exit code 0

目标值是类别0 1 2 3

里面还带有解释:这也许是模式识别文献中最有名的数据库。 费舍尔的论文是该领域的经典之作,至今一直被引用。 (例如,请参见Duda&Hart。)数据集包含3类,每类50个实例,其中每个类均指一种鸢尾植物。

1.3 对数据集进行分割

划分训练集和测试集,其中训练集的特征值需要和目标值进行对应。

sklearn.model_selection.train_test_split(*arrays, **options)x	       数据集的特征值
y          数据集的标签值
test_size      测试集的大小,一般为float
random_state        随机数种子,不同的种子会造成不同的随机
采样结果。相同的种子采样结果相同。return  训练集特征值,测试集特征值,训练标签,测试标签
(默认随机取)

举个栗子:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
li = load_iris()
# print("获取特征值")
# print(li.data)
# print("目标值")
# print(li.target)
# print(li.DESCR)
# 注意返回值, 训练集 train  x_train, y_train        测试集  test   x_test, y_test 顺序不可以搞错
x_train, x_test, y_train, y_test = train_test_split(li.data, li.target, test_size=0.25)
print("训练集特征值和目标值:", x_train, y_train)
print("测试集特征值和目标值:", x_test, y_test)

运行结果:

D:\softwares\anaconda3\python.exe D:/PycharmProjects/MyTest/Day_0707/__init__.py
训练集特征值和目标值: [[5.4 3.9 1.7 0.4][6.3 2.9 5.6 1.8][6.2 3.4 5.4 2.3][4.6 3.4 1.4 0.3][5.5 2.5 4.  1.3][6.5 3.2 5.1 2. ][5.  3.5 1.3 0.3][5.9 3.  4.2 1.5][5.4 3.7 1.5 0.2][4.7 3.2 1.3 0.2][5.5 2.4 3.8 1.1][5.1 3.8 1.6 0.2][5.8 2.6 4.  1.2][6.3 2.8 5.1 1.5][6.4 2.9 4.3 1.3][5.1 3.8 1.9 0.4][6.  2.2 5.  1.5][6.6 2.9 4.6 1.3][7.1 3.  5.9 2.1][6.2 2.9 4.3 1.3][6.5 3.  5.2 2. ][5.6 2.9 3.6 1.3][4.9 3.1 1.5 0.1][5.1 3.7 1.5 0.4][6.3 3.4 5.6 2.4][4.9 3.  1.4 0.2][5.  3.4 1.5 0.2][5.4 3.  4.5 1.5][6.1 2.8 4.  1.3][5.1 3.5 1.4 0.2][4.8 3.4 1.6 0.2][6.1 3.  4.6 1.4][5.7 2.6 3.5 1. ][5.7 2.5 5.  2. ][6.9 3.1 4.9 1.5][7.7 2.8 6.7 2. ][5.7 2.9 4.2 1.3][5.1 3.8 1.5 0.3][4.6 3.6 1.  0.2][7.7 3.  6.1 2.3][6.4 3.2 5.3 2.3][6.4 2.8 5.6 2.1][5.2 4.1 1.5 0.1][5.  3.  1.6 0.2][6.  2.9 4.5 1.5][6.3 3.3 4.7 1.6][4.9 3.1 1.5 0.2][6.3 3.3 6.  2.5][5.7 4.4 1.5 0.4][4.4 2.9 1.4 0.2][6.7 3.  5.2 2.3][5.2 3.4 1.4 0.2][5.5 3.5 1.3 0.2][4.8 3.  1.4 0.3][6.9 3.1 5.4 2.1][6.3 2.5 5.  1.9][5.8 4.  1.2 0.2][5.1 2.5 3.  1.1][6.  2.2 4.  1. ][5.8 2.7 5.1 1.9][6.7 3.1 4.7 1.5][7.2 3.6 6.1 2.5][6.8 2.8 4.8 1.4][6.1 2.9 4.7 1.4][4.3 3.  1.1 0.1][7.  3.2 4.7 1.4][6.7 3.3 5.7 2.5][5.6 2.7 4.2 1.3][5.2 3.5 1.5 0.2][7.7 2.6 6.9 2.3][6.7 3.3 5.7 2.1][6.7 3.1 5.6 2.4][6.5 2.8 4.6 1.5][5.1 3.3 1.7 0.5][7.2 3.  5.8 1.6][5.8 2.7 4.1 1. ][7.3 2.9 6.3 1.8][5.8 2.8 5.1 2.4][6.4 2.7 5.3 1.9][4.8 3.1 1.6 0.2][7.2 3.2 6.  1.8][5.9 3.2 4.8 1.8][4.5 2.3 1.3 0.3][4.9 2.4 3.3 1. ][5.6 3.  4.5 1.5][5.1 3.5 1.4 0.3][4.9 3.6 1.4 0.1][5.  3.4 1.6 0.4][5.  3.6 1.4 0.2][6.  3.4 4.5 1.6][5.8 2.7 5.1 1.9][4.9 2.5 4.5 1.7][6.3 2.3 4.4 1.3][5.5 2.3 4.  1.3][6.1 3.  4.9 1.8][7.9 3.8 6.4 2. ][5.7 2.8 4.5 1.3][6.7 3.1 4.4 1.4][5.6 2.5 3.9 1.1][6.  3.  4.8 1.8][6.1 2.8 4.7 1.2][6.5 3.  5.8 2.2][5.9 3.  5.1 1.8][4.6 3.2 1.4 0.2][6.4 3.1 5.5 1.8][7.7 3.8 6.7 2.2][7.6 3.  6.6 2.1][5.  3.5 1.6 0.6][6.1 2.6 5.6 1.4][5.3 3.7 1.5 0.2][5.  2.  3.5 1. ][5.  3.3 1.4 0.2]] [0 2 2 0 1 2 0 1 0 0 1 0 1 2 1 0 2 1 2 1 2 1 0 0 2 0 0 1 1 0 0 1 1 2 1 2 10 0 2 2 2 0 0 1 1 0 2 0 0 2 0 0 0 2 2 0 1 1 2 1 2 1 1 0 1 2 1 0 2 2 2 1 02 1 2 2 2 0 2 1 0 1 1 0 0 0 0 1 2 2 1 1 2 2 1 1 1 2 1 2 2 0 2 2 2 0 2 0 10]
测试集特征值和目标值: [[4.6 3.1 1.5 0.2][5.6 3.  4.1 1.3][5.5 4.2 1.4 0.2][7.4 2.8 6.1 1.9][5.6 2.8 4.9 2. ][5.  3.2 1.2 0.2][5.7 3.8 1.7 0.3][4.4 3.  1.3 0.2][6.6 3.  4.4 1.4][6.4 3.2 4.5 1.5][6.3 2.5 4.9 1.5][5.1 3.4 1.5 0.2][6.9 3.1 5.1 2.3][6.8 3.2 5.9 2.3][5.8 2.7 3.9 1.2][4.7 3.2 1.6 0.2][6.9 3.2 5.7 2.3][5.4 3.4 1.5 0.4][4.8 3.  1.4 0.1][5.5 2.4 3.7 1. ][6.5 3.  5.5 1.8][6.2 2.2 4.5 1.5][5.  2.3 3.3 1. ][5.7 2.8 4.1 1.3][6.7 3.  5.  1.7][6.8 3.  5.5 2.1][4.4 3.2 1.3 0.2][6.7 2.5 5.8 1.8][5.7 3.  4.2 1.2][5.5 2.6 4.4 1.2][5.2 2.7 3.9 1.4][6.2 2.8 4.8 1.8][5.4 3.9 1.3 0.4][4.8 3.4 1.9 0.2][6.  2.7 5.1 1.6][6.4 2.8 5.6 2.2][6.3 2.7 4.9 1.8][5.4 3.4 1.7 0.2]] [0 1 0 2 2 0 0 0 1 1 1 0 2 2 1 0 2 0 0 1 2 1 1 1 1 2 0 2 1 1 1 2 0 0 1 2 20]Process finished with exit code 0

现在可以看出训练集就变少了,为原来的75%,且默认为乱序的。

2、 sklearn分类数据集

用于分类的大数据集:

sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)subset: 'train'或者'test','all',可选,选择要加载的数据集.
训练集的“训练”,测试集的“测试”,两者的“全部”
datasets.clear_data_home(data_home=None)
清除目录下的数据

文章20个类别 即20个特征值;data_home为目录;获取时先下载文件在获取数据

from sklearn.datasets import  fetch_20newsgroups
news = fetch_20newsgroups(subset='all')
print(news.data)
print(news.target)

3、 sklearn回归数据集

sklearn.datasets.load_boston() 加载并返回波士顿房价数据集
在这里插入图片描述

from sklearn.datasets import   load_boston
lb = load_boston()
print("获取特征值")
print(lb.data)
print("目标值")
print(lb.target)
print(lb.DESCR)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472277.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1846. 减小和重新排列数组后的最大元素

文章目录1. 题目2. 解题1. 题目 给你一个正整数数组 arr 。请你对 arr 执行一些操作(也可以不进行任何操作),使得数组满足以下条件: arr 中 第一个 元素必须为 1 。任意相邻两个元素的差的绝对值 小于等于 1 ,也就是…

ftp可以传输什么类型文件_FTP文件传输工具-ForkLift for Mac

orklift mac版是一款运行在Mac平台上的FTP文件传输工具。ForkLift拥有经典的两栏界面布局,简洁小巧。且支持FTP,SFTP,WebDAV,S3,iDisk,SMB,AFP和NIS协议,可以方便用户对本地以及远程…

1过程流程图 3 apqp_为什么过程开发的平面布置图要遵循精益原则?

今日话题为什么过程开发的平面布置图要遵循精益原则?问为什么过程开发的平面布置图要遵循精益原则?答工艺工程师根据过程流程图制定平面布置图,采用精益制造的原则,对加工与装配工位、物流路线、存储位置进行规划,以确…

LeetCode 1847. 最近的房间(排序离线计算 + 二分查找)

文章目录1. 题目2. 解题1. 题目 一个酒店里有 n 个房间,这些房间用二维整数数组 rooms 表示,其中 rooms[i] [roomIdi, sizei] 表示有一个房间号为 roomIdi 的房间且它的面积为 sizei 。每一个房间号 roomIdi 保证是 独一无二 的。 同时给你 k 个查询&…

【机器学习】sklearn k-近邻算法

sklearn k-近邻算法1. sklearn k-近邻算法API2. k近邻算法实例-预测入住位置核心思想:你的“邻居”来推断出你的类别定义:如果一个样本在特征空间中的 k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。…

LeetCode 1849. 将字符串拆分为递减的连续值(回溯)

文章目录1. 题目2. 解题1. 题目 给你一个仅由数字组成的字符串 s 。 请你判断能否将 s 拆分成两个或者多个 非空子 字符串 ,使子字符串的 数值 按 降序 排列,且每两个 相邻子字符串 的数值之 差 等于 1 。 例如,字符串 s "0090089&q…

flutter text 最大长度_Flutter小技巧之TextField换行自适应

无论哪种界面框架输入文本框都是非常重要的控件, 但是发现flutter中的输入框TextField介绍的虽然多,但是各个属性怎么组合满足需要很多文章却说不清楚, 再加上控件版本变更频繁很多功能的介绍都是比较陈旧的属性.现在就需要一个类似微信的输入文本框, 这样一个非常实用的效果fl…

【机器学习】分类算法sklearn-朴素贝叶斯算法

分类算法-朴素贝叶斯算法1. 概率基础2. 朴素贝叶斯介绍3. sklearn朴素贝叶斯实现API4. 朴素贝叶斯算法案例1. 概率基础 概率定义为一件事情发生的可能性:扔出一个硬币,结果头像朝上;某天是晴天 联合概率和条件概率“”: 联合概率…

LeetCode 1851. 包含每个查询的最小区间(排序 + 离线查询 + 优先队列)

文章目录1. 题目2. 解题1. 题目 给你一个二维整数数组 intervals ,其中 intervals[i] [lefti, righti] 表示第 i 个区间开始于 lefti 、结束于 righti(包含两侧取值,闭区间)。 区间的 长度 定义为区间中包含的整数数目&#xff…

git 查看某些文档的历史版本_Git 教程(二)log 命令的使用

使用 Git 进行版本控制时,要习惯他的工作流程,Git 的工作流程是,先在工作区创建项目并编写代码,然后将写好的文件添加到暂存区,最后将暂存区里的文件提交到历史版本库。如下图所示:每向版本历史库做一次提交…

【机器学习】sclearn分类算法-决策树、随机森林

分类算法-决策树、随机森林1.决策树1.1 认识决策树1.2 信息论基础-银行贷款分析1.3 决策树的生成1.4 决策树的划分依据之一-信息增益1.5 sklearn决策树API1.6 泰坦尼克号乘客生存分类2. 集成学习方法-随机森林1.决策树 1.1 认识决策树 决策树思想的来源非常朴素,程…

【机器学习】回归算法-线性回归分析、回归实例和回归性能评估

回归算法-线性回归分析、回归实例和回归性能评估线性回归损失函数(误差大小)sklearn线性回归正规方程、梯度下降API线性回归实例回归:目标值连续;分类:目标值离散。 预测回归和分类是不一样的。回归问题可以用于预测销售额,比如公…

scrapy使用代理报错keyerror: proxy_爬虫Scrapy框架-Crawlspider链接提取器与规则解析器...

Crawlspider一:Crawlspider简介CrawlSpider其实是Spider的一个子类,除了继承到Spider的特性和功能外,还派生除了其自己独有的更加强大的特性和功能。其中最显著的功能就是”LinkExtractors链接提取器“。Spider是所有爬虫的基类,其…

传智书城首页设计代码_(自适应手机版)响应式创意餐饮酒店装饰设计类网站织梦模板 html5蓝色餐饮酒店设计网站源码下载...

模板名称:(自适应手机版)响应式创意餐饮酒店装饰设计类网站织梦模板 html5蓝色餐饮酒店设计网站源码下载本套织梦模板采用织梦最新内核开发的模板,这款模板使用范围广,不仅仅局限于一类型的企业,创意设计、装饰设计、餐饮酒店设计…

【机器学习】逻辑回归—良/恶性乳腺癌肿瘤预测

逻辑回归—良/恶性乳腺癌肿瘤预测 逻辑回归的损失函数、优化 与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解 sklearn逻辑回归API sklearn.linear_model.LogisticRegressionLogisticRegression sklearn.linear…

opencv mat初始化_【OpenCV入门之十二】看起来一样的图像竟然存在这么大的差别!...

小白导读学习计算机视觉最重要的能力应该就是编程了,为了帮助小伙伴尽快入门计算机视觉,小白准备了【OpenCV入门】系列。新的一年文章的内容进行了很大的完善,主要是借鉴了更多大神的文章,希望让小伙伴更加容易理解。如果小伙伴觉…

LeetCode 1854. 人口最多的年份(差分)

文章目录1. 题目2. 解题1. 题目 给你一个二维整数数组 logs ,其中每个 logs[i] [birthi, deathi] 表示第 i 个人的出生和死亡年份。 年份 x 的 人口 定义为这一年期间活着的人的数目。 第 i 个人被计入年份 x 的人口需要满足:x 在闭区间 [birthi, dea…

服务端_说说Netty服务端启动流程

点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章本文来源:http://yeming.me/2016/03/12/netty1/netty服务端代码分析服务端启动配置对于 ServerBootstrap:ServerBootstrap继承于 AbstractBootstrap,它从父类继承…

ztree在刷新时第一个父节点消失_第一个关于中式菜谱的智能问答机器人小程序正式上线啦...

为了满足大家对菜品烹饪的各类问题能直接得到答案的需求,我开发了目前第一个真正关于菜谱的智能问答系统,并在微信小程序发布上线。这套系统支持对于8600多种菜品的问答功能,并能实现快速问答响应,整套系统后端依托于搭建的中式菜…