首页 > 技术文章 > sklearn数据集

p1967914901 2020-12-15 00:02 原文

scikit-learn 数据集 API 介绍

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

sklearn 小数据集

【例如】

  • sklearn.datasets.load_iris()

加载并返回鸢尾花数据集

名称数量
类别3
样本数量150
特征4
每个类别数量50
  • sklearn.datasets.load_iris()

加载并返回波士顿房价数据集

名称数量
目标类别5-50
样本数量506
特征13

sklearn 大数据集

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

sklearn 数据集的使用

以鸢尾花数据集为例:

sklearn 数据集返回值介绍

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

if __name__ == '__main__':

    # 获取鸢尾花数据集
    iris = load_iris()
    # print('鸢尾花数据集的返回值为:',iris)

    # 返回值是一个继承自字典的 Bench
    print('鸢尾花的特征值为:', iris['data'])
    print('鸢尾花的特征值的形状为:', iris['data'].shape)
    print('鸢尾花的目标值为:', iris['target'])
    print('鸢尾花特征的名字:', iris['feature_names'])
    print('鸢尾花目标值的名字:', iris['target_names'])
    print('鸢尾花的描述:', iris['DESCR'])

拿到的数据是否全部都用来训练一个模型?

数据集的划分2.1.3

机器学习一般的数据集会划分为两个部分:

  • 训练数据:用于训练,构建模型
  • 测试数据:在模型检验时使用,用于评估模型是否有效

划分比例:

  • 训练集:70% 80% 75%
  • 测试集:30% 20% 30%

数据集划分api

  • sklearn.model_selection.train_dest_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

if __name__ == '__main__':

    # 获取鸢尾花数据集
    iris = load_iris()
    # print('鸢尾花数据集的返回值为:',iris)

    # 返回值是一个继承自字典的 Bench
    print('鸢尾花的特征值为:', iris['data'])
    print('鸢尾花的特征值的形状为:', iris['data'].shape)
    print('鸢尾花的目标值为:', iris['target'])
    print('鸢尾花特征的名字:', iris['feature_names'])
    print('鸢尾花目标值的名字:', iris['target_names'])
    print('鸢尾花的描述:', iris['DESCR'])


    # 数据集划分
    # test_size 的默认值为 0.25
    x_train, x_test, y_train, y_test = train_test_split(iris['data'], iris['target'], test_size=0.2, random_state=22)
    print('训练集的特征值:', x_train, x_train.shape)

推荐阅读