机器学习(三)sklearn数据集

机器学习(三)sklearn数据集

文章目录

  • 机器学习(三)sklearn数据集
    • 一.数据集划分
    • 二.数据集的使用
      • 2.1 获取数据集返回的类型
      • 2.2 数据集分割
      • 2.3 用于分类的大数据集

一.数据集划分

一般来说,数据集分为两大部分

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

一般来说,测试数据的量要比训练数据的量小很多。测试数据量:训练数据量大概为25%:75%。测试数据都是一些没有使用过的新数据。

二.数据集的使用

对于个人来说,数据集的采集通常需要花费大量的精力和时间。但是,包括sklearn, kaggle这些,都给提供了很多数据集。

我们以sklearn为例,在sklearn中,数据集划分的api如下:

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

而数据集获取的接口如下:

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

2.1 获取数据集返回的类型

  • load* ,fetch* 返回的数据类型:datasets.base.Bunch(字典格式)

  • data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组

  • target:标签数组,是 n_samples 的一维 numpy.ndarray 数组

  • DESCR:数据描述

  • feature_names:特征名,新闻数据,手写数字、回归数据集没有

  • target_names:标签名,回归数据集没有

举几个例子:

(1). sklearn分类数据集

这里值介绍几个,有个大致的概念即可

  • sklearn.datasets.load_iris():加载并返回鸢尾花数据集
  • sklearn.datasets.load_digits():加载并返回数字数据集
from sklearn.datasets import load_iris

li = load_iris()
print("feature value:", li.data)
print("target value",li.target)
print(li.DESCR)

(2) sklearn 回归数据集

  • sklearn.datasets.load_boston():加载并返回波士顿房价数据集
  • sklearn.datasets.load_diabetes():加载和返回糖尿病数据集

2.2 数据集分割

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

举例:

from sklearn.datasets import load_iris,fetch_20newsgroups
from sklearn.model_selection import train_test_split
li = load_iris()

# 训练集 train  x_train, y_train;测试集 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)

2.3 用于分类的大数据集

sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)

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

你可能感兴趣的:(机器学习)