python之sklearn- 分类算法-2.1 数据集介绍与划分

一,sklearn数据集介绍

1,api
  • sklearn.datasets
    • 加载获取流行数据集
    • datasets.load_*()
      • 获取小规模数据集,数据包含在datasets里
    • datasets.fetch_*(data_home=None)
      • 获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/
2,返回类型
  • load 和 fetch 返回的数据类型datasets.base.Bunch(字典格式)
    • data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
    • target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
    • DESCR:数据描述
    • feature_names:特征名,新闻数据,手写数字、回归数据集没有
    • target_names:标签名
3,分类、回归数据集实例
from sklearn.datasets import load_iris,load_boston,fetch_20newsgroups

# 1,分类数据集
# lr = load_iris()
# print("特征值",lr.data)
# print("目标值",lr.target)
# print(lr.feature_names)
# print(lr.target_names)
# print(lr.DESCR)

# 2,回归数据集
# lb = load_boston()
# print("特征值",lb.data)
# print("目标值",lb.target)
# print(lb.feature_names)

# 3,数据量比较大的数据集
# subset: 'train'或者'test','all',可选,选择要加载的数据集.训练集的“训练”,
# 测试集的“测试”,两者的“全部”
news = fetch_20newsgroups(subset='all')
print("特征值",news.data)
print("目标值",news.target)

---------------------------------------------------------------
Downloading 20news dataset. This may take a few minutes.
Downloading dataset from https://ndownloader.figshare.com/files/5975967 (14 MB)

二, 数据集的划分

1,数据集的划分

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

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

划分比例:

  • 训练集:70% 80% 75%
  • 测试集:30% 20% 30%
2,API
  • sklearn.model_selection.train_test_split(arrays, *options)
    • x 数据集的特征值
    • y 数据集的标签值
    • test_size 测试集的大小,一般为float
    • random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
    • return ,测试集特征训练集特征值值,训练标签,测试标签(默认随机取)
3,实例
from sklearn.datasets import load_iris,load_boston,fetch_20newsgroups
from sklearn.model_selection import train_test_split
# 1,分类数据集
lr = load_iris()
# print("特征值",lr.data)
# print("目标值",lr.target)
# print(lr.feature_names)
# print(lr.target_names)
# print(lr.DESCR)

# 2,回归数据集
# lb = load_boston()
# print("特征值",lb.data)
# print("目标值",lb.target)
# print(lb.feature_names)

# 3,数据量比较大的数据集
# news = fetch_20newsgroups(subset='all')
# print("特征值",news.data)
# print("目标值",news.target)

# 4,进行数据集的训练集和测试集划分
# 返回值有4个部分接受
# x,y特征值、目标值,train、test训练集和测试集
# x_train,x_test,y_train,y_test
x_train,x_test,y_train,y_test = train_test_split(lr.data,lr.target,test_size=0.3)
print("训练集的特征值和目标值:",x_train,y_train)
print("测试机的特征值和目标值:",x_test,y_test)

猜你喜欢

转载自blog.csdn.net/TFATS/article/details/108215126