IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> K-近邻算法(三) -> 正文阅读

[人工智能]K-近邻算法(三)

七、特征?程-特征预处理

学习?标:

  • 了解什么是特征预处理
  • 知道归?化和标准化的原理及区别

1、什么是特征预处理

(1) 特征预处理定义

scikit-learn的解释
provides several common utility functions and transformer classes to change raw feature vectors into a representation that is more suitable for the downstream estimators.

翻译过来:通过?些转换函数将特征数据转换成更加适合算法模型的特征数据过程(把数据转换为机器更容易识别,更好处理的数据)
在这里插入图片描述为什么我们要进?归?化/标准化?

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

举例:约会对象数据
在这里插入图片描述我们需要?到?些?法进??量纲化,使不同规格的数据转换到同?规格

(2)包含内容

  • 归?化
  • 标准化

(3)特征预处理API

sklearn.preprocessing

2、归?化

(1)定义

通过对原始数据进?变换把数据映射到(默认为[0,1])之间

(2)公式
在这里插入图片描述

作?于每?列,max为?列的最?值,min为?列的最?值,那么X’’为最终结果,mx,mi分别为指定区间值默认
mx为1,mi为0

那么怎么理解这个过程呢?我们通过?个例?
在这里插入图片描述(3)API

sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )

MinMaxScalar.fit_transform(X):

  • X:numpy array格式的数据[n_samples,n_features]

返回值:转换后的形状相同的array

(4)数据计算

我们对以下数据进?运算,在dating.txt中。保存的就是之前的约会对象数据

milage,Liters,Consumtime,target
40920,8.326976,0.953952,3
14488,7.153469,1.673904,2
26052,1.441871,0.805124,1
75136,13.147394,0.428964,1

分析:

a. 实例化MinMaxScalar

b. 通过fit_transform转换

import pandas as pd
from sklearn.preprocessing import MinMaxScaler
def minmax_demo():
    """
    归一化演示
    :return: None
    """
    data = pd.read_csv("E:/深度学习/黑马/机器学习入门教程视频/05开始机器学习/day05/2.code/data/dating.txt")
    print(data)
    # 1、实例化一个转换器类
    transfer = MinMaxScaler(feature_range=(2, 3))
    # 2、调用fit_transform
    data = transfer.fit_transform(data[['milage','Liters','Consumtime']])
    print("最小值最大值归一化处理的结果:\n", data)
    
minmax_demo()  

得到的结果为:
在这里插入图片描述
(5)总结

注意最大值最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性(稳定性)较差,只适合传统精确小数据场景。

怎么办?

3、标准化

(1)定义

通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内

(2)公式

在这里插入图片描述

作用于每?列,mean为平均值,σ为标准差

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

(3)API

sklearn.preprocessing.StandardScaler( )

处理之后,每列来说,所有数据都聚集在均值0附近,标准差差为1

  • StandardScaler.fit_transform(X)

X:numpy array格式的数据 [ n_samples,n_features ]

返回值:转换后的形状相同的array

(4)数据计算

a.实例化StandardScaler

b.通过fit_transform转换

import pandas as pd
from sklearn.preprocessing import StandardScaler
def stand_demo():
    """
    标准化演示
    :return: None
    """
    data = pd.read_csv("E:/深度学习/黑马/机器学习入门教程视频/05开始机器学习/day05/2.code/data/dating.txt")
    print(data)
    # 1、实例化?个转换器类
    transfer = StandardScaler()
    # 2、调?fit_transform
    data = transfer.fit_transform(data[['milage','Liters','Consumtime']])
    print("标准化的结果:\n", data)
    print("每?列特征的平均值:\n", transfer.mean_)
    print("每?列特征的?差:\n", transfer.var_)
    
stand_demo()   

在这里插入图片描述
(5)标准化总结

在已有样本?够多的情况下?较稳定,适合现代嘈杂?数据场景。

4、总结

  • 什么是特征?程【知道】

定义:通过?些转换函数将特征数据转换成更加适合算法模型的特征数据过程

包含内容:归?化、标准化

归一化

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

api:sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… ),参数:feature_range – ??指定范围,默认0-1

总结:

  • 鲁棒性?较差(容易受到异常点的影响)
  • 只适合传统精确?数据场景(以后不会?你了)

标准化

定义:对原始数据进?变换把数据变换到均值为0,标准差为1范围内

api:sklearn.preprocessing.StandardScaler( )

总结:

  • 异常值对我影响小
  • 适合现代嘈杂?数据场景(以后就是?你了)

八、案例:鸢尾花种类预测—流程实现

1、再识K-近邻算法API

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm='auto')

(1)n_neighbors

int,可选(默认= 5),k_neighbors查询默认使?的邻居数

(2)algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’}

快速k近邻搜索算法,默认参数为auto,可以理解为算法自己决定合适的搜索算法。除此之外,?户也可以自己指定搜索算法ball_tree、kd_tree、brute?法进行搜索

  • brute

    是蛮力搜索,也就是线性扫描,当训练集很大时,计算非常耗时。

  • kd_tree

    构造kd树存储数据以便对其进?快速检索的树形数据结构,kd树也就是数据结构中的?叉树。以中值切分构造的树,每个结点是?个超矩形,在维数?于20时效率?。

  • ball tree

    是为了克服kd树?维失效?发明的,其构造过程是以质心 C和半径 r分割样本空间,每个节点是?个超球体。

2、案例:鸢尾花种类预测

(1)数据集介绍

Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是?类多重变量分析的数据集。关于数据集的具体介绍:

在这里插入图片描述
(2)步骤分析

a.获取数据集
b.数据基本处理
c.特征?程
d.机器学习(模型训练)
e.模型评估

(3)代码过程

  • 导入模块
from sklearn.datasets import load_iris  #导入鸢尾花数据
from sklearn.model_selection import train_test_split   #分隔数据集
from sklearn.preprocessing import StandardScaler   #特征预处理
from sklearn.neighbors import KNeighborsClassifier   #K近邻算法
  • 先从sklearn当中获取数据集,然后进行数据集的分割
# 1.获取数据集
iris = load_iris()
# 2.数据基本处理
# x_train,x_test,y_train,y_test为训练集特征值、测试集特征值、训练集?标值、测试集?标值
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
  • 进行数据标准化

特征值的标准化

# 3、特征?程:标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
  • 模型进行训练预测
# 4、机器学习(模型训练)
estimator = KNeighborsClassifier(n_neighbors=9)
estimator.fit(x_train, y_train)
# 5、模型评估
# ?法1:?对真实值和预测值
y_predict = estimator.predict(x_test)
print("预测结果为:\n", y_predict)
print("?对真实值和预测值:\n", y_predict == y_test)
# ?法2:直接计算准确率
score = estimator.score(x_test, y_test)
print("准确率为:\n", score)

random_state

随机数种子就是把训练集和测试集分的情况不一样,随机数种子不同,训练的模型也是不同的,修改这一变量可影响模型准确率

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 10:56:24  更:2021-10-22 10:56:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:29:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码