标签:切分 对象 机器学习 图片 mamicode 初识 特征 info numpy
通过特定的统计方法(数学方法)将数据转换成算法要求的数据。
数值型数据:标准缩放:
类别型数据:
时间类型:
sklearn特征处理的API为:sklearn.preprocessing。
特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间。
公式:
注:作用于每一列,max为一列的最大值,min为一列的最小值,那么X’’为最终结果,mx,mi分别为指定区间值默认mx为1,mi为0。
sklearn归一化API:sklearn.preprocessing.MinMaxScaler。
MinMaxScaler语法:
MinMaxScalar(feature_range=(0,1)…)
from sklearn.preprocessing import MinMaxScaler def mm(): """ 归一化处理 :return: NOne """ mm = MinMaxScaler(feature_range=(2, 3)) data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) print(data) return None if __name__ == "__main__": mm()
运行结果:
相亲约会对象数据,这个样本时男士的数据,三个特征,玩游戏所消耗时间的百分比、每年获得的飞行常客里程数、每周消费的冰淇淋公升数。然后有一个所属类别,被女士评价的三个类别,不喜欢didnt、魅力一般small、极具魅力large也许也就是说飞行里程数对于结算结果或者说相亲结果影响较大,但是统计的人觉得这三个特征同等重要。
这时候我们就需要进行归一化处理了。
注意在特定场景下最大值最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。
特点:通过对原始数据进行变换把数据变换到均值为0,方差为1范围内。
公式:
注:作用于每一列,mean为平均值,??为标准差(考量数据的稳定性)
std成为方差:
对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变。
对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。
sklearn特征化API:scikit-learn.preprocessing.StandardScaler。
StandardScaler(…)
from sklearn.preprocessing import StandardScaler def stand(): """ 标准化缩放 :return: """ std = StandardScaler() data = std.fit_transform([[ 1., -1., 3.],[ 2., 4., 2.],[ 4., 6., -1.]]) print(data) return None if __name__ == "__main__": stand()
运行结果:
可以通过缺失值每行或者每列的平均值、中位数来填充。
初识人工智能(二):机器学习(二):sklearn数据特征预处理
标签:切分 对象 机器学习 图片 mamicode 初识 特征 info numpy
原文地址:https://www.cnblogs.com/liuhui0308/p/12687055.html