ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

机器学习入门————特征预处理

2022-03-19 11:33:36  阅读:211  来源: 互联网

标签:机器 入门 fit 数据 transfer 归一化 print data 预处理


2.4.1 什么是特征预处理

通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程
数值型数据的无量纲化

  • 归一化
  • 标准化
    特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征,因此通过归一化将数据转化为相同量级

2.4.2 归一化

通过对原始数据进行变换把数据映射到 (默认为[0,1]) 之间
在这里插入图片描述
调用API:

sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
	MinMaxScalar.fit_transform(X)
		X:numpy array格式的数据[n_samples,n_features]
		返回值:转换后的形状相同的array
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

def minmax_demo():
    """
    归一化处理
    :return:None
    """
    #读取数据文件
    data=pd.read_csv("data.txt")
    data=data.iloc[:10,:3]          #只取数据的前10行和前三列

    #实例化
    transfer=MinMaxScaler(feature_range=(0,1))      #归一化范围为0-1

    #输出
    data_new=transfer.fit_transform(data)
    print("归一化前结果为:\n", data)
    print("归一化后结果为:\n",data_new)

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

2.4.3 标准化

通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内
在这里插入图片描述
调用API:

sklearn.preprocessing.StandardScaler( )
	处理之后每列来说所有数据都聚集在均值0附近标准差差为1
		StandardScaler.fit_transform(X)
		X:numpy array格式的数据[n_samples,n_features]
		返回值:转换后的形状相同的array
import pandas as pd
from sklearn.preprocessing import StandardScaler

def stand_demo():
    """
    标准化演示
    :return: None
    """
    data = pd.read_csv("data.txt")
	data=data.iloc[:10,:3]          #只取数据的前10行和前三列
	
    # 1、实例化一个转换器类
    transfer = StandardScaler()
    # 2、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("标准化的结果:\n", data_new)
    print("每一列特征的平均值:\n", transfer.mean_)
    print("每一列特征的方差:\n", transfer.var_)

总结:在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。

标签:机器,入门,fit,数据,transfer,归一化,print,data,预处理
来源: https://blog.csdn.net/zcolaz/article/details/123590504

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有