当前位置:   article > 正文

K近邻算法02---sklearn数据集获取(特征值、标签等)、查看数据分布(散点图)、数据集划分(测试和训练集)、特征工程(标准化和归一化)、鸢尾花种类预测的实现流程_第1关:了解数据集特征

第1关:了解数据集特征

1.sklearn数据集的获取

(1)scikit-learn数据集API介绍

在这里插入图片描述

(2) sklearn数据集返回值介绍

在这里插入图片描述

(3)举例子

  • 小数据 获取数据
    在这里插入图片描述

  • 获取特征值
    在这里插入图片描述

  • 获取目标值
    在这里插入图片描述

  • 获取特征名字
    在这里插入图片描述

  • 获取大数据集合
    在这里插入图片描述

2.查看数据分布

将数据用散点图表示出来。
在这里插入图片描述

  1. 使用sns
    在这里插入图片描述

在这里插入图片描述

  1. 使用plt绘制散点图
    在这里插入图片描述

3.数据集划分

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

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

划分比例:

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

在这里插入图片描述
在这里插入图片描述

4.特征工程-特征预处理(标准化和归一化)

(1)特征预处理定义

通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程。

为什么我们要进行归一化/标准化?

特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征。

(2)归一化

  1. 定义:
    通过对原始数据进行变换把数据映射到(默认为[0,1])之间。

  2. 公式:
    在这里插入图片描述

  3. API
    在这里插入图片描述

(3)标准化

  1. 定义:
    归一化:通过对原始数据进行变换把数据映射到(默认为[0,1])之间。
    标准化:通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内

  2. 公式:
    在这里插入图片描述

  3. API
    在这里插入图片描述

(4)标准化和归一化的区别

  • 对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变
  • 对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。

(5)标准化和归一化的例子

  1. 导入数据
    在这里插入图片描述
  2. 归一化
    在这里插入图片描述
  3. 特征化
    在这里插入图片描述

5.大整合—鸢尾花种类预测(实现流程)

from sklearn.datasets import load_iris   #获取数据
from sklearn.model_selection import train_test_split  # 数据分析
from sklearn.preprocessing import StandardScaler #标准化
from sklearn.neighbors import KNeighborsClassifier  #KNN算法
from sklearn.model_selection import GridSearchCV
import pandas as pd


# 1.获取数据load_iris
# 2.数据基本处理_数据集划分
# 3.特征工程  标准化
# 4.机器学习:1.建立模型  2.模型训练
# 5.模型评估 准确率

# 1.获取数据 load_iris()
iris = load_iris()

# 2.数据基本处理-数据集划分
x_train,x_test, y_train, y_test = train_test_split(iris.data,iris.target, test_size=0.2)

# 3.特征工程
# 3.1实例化转换器
transfer = StandardScaler()
# 3.2转换数据
transfer.fit(x_train)  #把x_train的数据进行平均值、方差等的计算
x_train = transfer.transform(x_train)  #把x_train的数据标准化
x_test = transfer.transform(x_test)    #把x_text的数据表转化

# 4.机器学习
# 4.1 建立模型 实例化 估计器
estimator = KNeighborsClassifier(n_neighbors=5, algorithm='kd_tree')

# 4,2训练模型
estimator.fit(x_train, y_train)

# 5.模型评估 准确率
estimator.score(x_test, y_test)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

结果:

0.9666666666666667

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/424133
推荐阅读
相关标签
  

闽ICP备14008679号