数据集划分

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

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

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

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

python sklearn数据集加载 sklearn数据集格式_标准差

划分的api : sklearn.model_selection.train_test_split

获取流行数据集:

python sklearn数据集加载 sklearn数据集格式_数据集_02


python sklearn数据集加载 sklearn数据集格式_python sklearn数据集加载_03

python sklearn数据集加载 sklearn数据集格式_数据集_04

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)

部分结果:

python sklearn数据集加载 sklearn数据集格式_数据集_05

python sklearn数据集加载 sklearn数据集格式_标准差_06

python sklearn数据集加载 sklearn数据集格式_标准差_07

对数据集进行分割

python sklearn数据集加载 sklearn数据集格式_标准差_08

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)

python sklearn数据集加载 sklearn数据集格式_数据集_09

用于分类的大数据集

python sklearn数据集加载 sklearn数据集格式_特征值_10

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回归数据集

python sklearn数据集加载 sklearn数据集格式_数据集_11

转换器和估计器

转换器

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)

估计器

python sklearn数据集加载 sklearn数据集格式_数据集_12

过程:

x_train特征值,y_train目标值

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

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

python sklearn数据集加载 sklearn数据集格式_python sklearn数据集加载_13

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