【机器学习】sklearn数据集的使用,数据集的获取和划分

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

sklearn数据集

  • 二、安装sklearn
  • 二、获取数据集
  • 三、数据集划分

机器学习是人工智能的一个实现途径,可以从「数据」中自动分析获得「模型」,并利用模型对未知数据进行「预测」

简单来说就是从历史数据中总结规律,用来解决新出现的问题。

从数据中总结规律,需要提供一个「数据集」,数据集由「特征值」「目标值」两部分组成。

机器学习有很多好用的工具,这里我们使用sekearn。

sklearn是基于Python的机器学习工具包,自带大量数据集,可供我们练习各种机器学习算法。

二、安装sklearn

环境要求:

  • Python(>=2.7 or >=3.3)
  • NumPy (>= 1.8.2)
  • SciPy (>= 0.13.3)

先安装 numpyscipy,再安装 scikit-learn

PyCharm左上角【file】-【Settings】-【Project:pythonProject】-【Python Interpreter】

【机器学习】sklearn数据集的使用,数据集的获取和划分_第1张图片

二、获取数据集

sklearn数据集有有三种「获取数据」的方式:

  • sklearn.datasets.load_*():小规模数据集(本地加载)
  • sklearn.datasets.fetch_*():大规模数据集(在线下载)
  • sklearn.datasets.make_*():本地生成数据集(本地构造)

sklearn数据集的「返回值」是字典格式:

  • data:特征值数据数组
  • target:目标值数据数组(标签)
  • target_names:标签名(目标值和标签的对应关系)
  • DESCR:数据描述
  • feature_names:特征名

接下来,我们获取一个自带的本地数据集:

from sklearn import datasets

# 获取数据集
iris = datasets.load_iris()
# 打印数据集
print(iris)

输出:

【机器学习】sklearn数据集的使用,数据集的获取和划分_第2张图片

从输出结果来看,它返回的数据集是一个字典,里面包含了特征值(data)、目标值(target)等信息。

我们可以调用返回值「属性」,单独查看数据集的某个信息:

from sklearn import datasets

# 获取数据集
iris = datasets.load_iris()

# 查看数据值
print(iris.data)
# 查看目标值(标签)
print(iris.target)
# 查看标签名
print(iris.target_names)
# 查看数据描述
print(iris.DESCR)
# 查看特征名
print(iris.feature_names)

三、数据集划分

数据集通常会划分为两个部分:

  • 「训练数据」:用于训练,生成模型。
  • 「测试数据」:用于检验,判断模型是否有效。

sklearn.model_selection.train_test_split() 用来划分数据集

参数:

  • x:(必选)数组类型,数据集的特征值
  • y:(必选)数组类型,数据集的目标值
  • test_size:(可选,默认0.25)浮点型,测试集的大小
  • random_state:(可选)整型,随机数种子,不同的随机数对应不同的采样结果。

返回值:

  • 训练集特征值、测试集特征值、训练集目标值、测试集目标值

接下来,我们对刚才获取的本地数据集进行划分,测试集大小不给值,就是默认的0.25,意思是25%当做测试数据、剩下的75%当做训练数据。

from sklearn import datasets
from sklearn import model_selection

# 获取数据集
iris = datasets.load_iris()

# 数据集的特征值
data_arr = iris.data
# 数据集的目标值(标签)
target_arr = iris.target


x_data, y_data, x_target, y_target = model_selection.train_test_split(data_arr, target_arr)
print('训练集特征值', x_data)
print('测试集特征值', y_data)
print('训练集目标值', x_target)
print('测试集目标值', y_target)

你可能感兴趣的:(机器学习,人工智能,ai)