(笔记)sklearn入门 2.1 数据集的划分和流行数据集获取、转换器和估计器介绍

数据集划分

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

训练数据(训练集):用于训练,构建模型

测试数据(测试集):在模型检验时使用,用于评估模型是否有效

训练集和测试集的比一般有7:3, 4:1, 3:1

image

划分的api : sklearn.model_selection.train_test_split

获取流行数据集:

image
image

Iris数据集在模式识别研究领域应该是最知名的数据集了,有很多文章都用到这个数据集。这个数据集里一共包括150行记录,其中前四列为花萼长度,花萼宽度,花瓣长度,花瓣宽度等4个用于识别鸢尾花的属性,第5列为鸢尾花的类别(包括Setosa,Versicolour,Virginica三类)。也即通过判定花萼长度,花萼宽度,花瓣长度,花瓣宽度的尺寸大小来识别鸢尾花的类别

image

from sklearn.datasets import load_iris # 鸢尾花数据集
from sklearn.model_selection import train_test_split
import numpy as np
import pandas as pd


if __name__ == '__main__':
    li = load_iris()

    print('获取特征值')
    print(li.data)
    print('目标值')
    print(li.target)
    print(li.DESCR)

部分结果:

image

image

image

对数据集进行分割

image

from sklearn.datasets import load_iris # 鸢尾花数据集
from sklearn.model_selection import train_test_split

if __name__ == '__main__':
    li = load_iris()
    # 注意返回值       训练集 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) # test_size测试集大小
    print('训练集特征值和目标值:\n', x_train,'\n', y_train)
    print('测试集特征值和目标值:\n', x_test,'\n', y_test)

image

用于分类的大数据集

20 newsgroups数据集18000多篇新闻文章,一共涉及到20种话题,所以称作20newsgroups text dataset,分为两部分:训练集和测试集,通常用来做文本分类,均匀分为20个不同主题的新闻组集合。20newsgroups数据集是被用于文本分类、文本挖据和信息检索研究的国际标准数据集之一。一些新闻组的主题特别相似(e.g. comp.sys.ibm.pc.hardware/ comp.sys.mac.hardware),还有一些却完全不相关 (e.g misc.forsale /soc.religion.christian)。

image

from sklearn.datasets import fetch_20newsgroups #
from sklearn.model_selection import train_test_split

if __name__ == '__main__':
    news = fetch_20newsgroups(subset='all')
    print(news.data)
    print(news.target)

sklearn回归数据集

image

转换器和估计器

转换器

fit()计算每一列的平均值、标准差

transform() 进行标准化

\(X' = \frac{x - mean}{\sigma}\)

作用于每一列,\(mean\)为平均值,\(σ\)为标准差(考量数据的稳定性)

\(var\)称为方差,\(var = \frac{\sum(x-mean)^2}{n(每个特征的样本数)}\) , \(\sigma = \sqrt{var}\)

from sklearn.preprocessing import StandardScaler
import pandas as pd
import numpy as np

if __name__ == '__main__':
    # fit()计算每一列的平均值、标准差
    # transform() (x-mean)/std 
    
    # fit_transform 等同于 fit + transform
    s = StandardScaler()
    data = s.fit_transform([[1,2,3],[4,5,6]])
    print(data,'\n')

    ss = StandardScaler()
    data = ss.fit([[1,2,3],[4,5,6]])
    print(data,'\n')
    data = ss.transform([[1,2,3],[4,5,6]])
    print(data,'\n')
#--------------------------------------------------------
    ss.fit([[2,3,4],[4,5,7]]) # fit 之后标准改了
    data = ss.transform([[1,2,3],[4,5,6]])
    print(data)

估计器

image

过程:

x_train特征值,y_train目标值

1、调用fit(x_train, y_train)进行训练

2、输入测试集的数据,进行sorce(x_train,y_train)得到结果精度和predict(x_train)得到预测结果

image

利用训练集构建一个机器学习模型,模型构建好之后可以利用测试集来评估我们模型的性能。

posted @ 2021-09-12 18:28  Lecoww  阅读(259)  评论(0编辑  收藏  举报