机器学习之特征归一化

当数据集的数值属性具有非常大的比例差异,往往导致机器学习的算法表现不佳,当然也有极少数特例。在实际应用中,通过梯度下降法求解的模型通常需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等模型。但

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

  当数据集的数值属性具有非常大的比例差异,往往导致机器学习的算法表现不佳,当然也有极少数特例。在实际应用中,通过梯度下降法求解的模型通常需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等模型。但对于决策树不使用,以C4.5为例,决策树在进行节点分裂时主要依据数据集D关于特征X的信息增益比,而信息增益比根特征是否经过归一化是无关的。

  同比例缩放所有属性常用的两种方法是:最小-最大缩放和标准化

  最小-最大缩放(又加归一化),将值重新缩放使其最终范围在0-1之间,(current – min)/ (max – min),Scikit-Learn提供了MinMaxSaler转换器可以完成该功能

  标准化,(current – mean) / var,使得得到的结果分布具备单位方差,相比最小-最大缩放,标准化的方法受异常值的影响更小,同样Scikit-Learn也提供了StandScaler转换器

1. MinMaxScaler和StandScaler类结构

  机器学习之特征归一化

2. MinMaxScaler示例

>>> from sklearn.preprocessing import MinMaxScaler
>>>
>>> data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
>>> scaler = MinMaxScaler()
>>> print(scaler.fit(data))
MinMaxScaler(copy=True, feature_range=(0, 1))
>>> print(scaler.data_max_)
[  1.  18.]
>>> print(scaler.transform(data))
[[ 0.    0.  ]
 [ 0.25  0.25]
 [ 0.5   0.5 ]
 [ 1.    1.  ]]
>>> print(scaler.transform([[2, 2]]))
[[ 1.5  0. ]]

3. StandScaler示例

>>> data = [[0, 0], [0, 0], [1, 1], [1, 1]]
>>> scaler = StandardScaler()
>>> print(scaler.fit(data))
    StandardScaler(copy=True, with_mean=True, with_std=True)
>>> print(scaler.mean_)
    [ 0.5  0.5]
>>> print(scaler.transform(data))
    [[-1. -1.]
    [-1. -1.]
    [ 1.  1.]
    [ 1.  1.]]
>>> print(scaler.transform([[2, 2]]))
    [[ 3.  3.]]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120028.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月30日 上午7:00
下一篇 2021年12月30日 上午8:00


相关推荐

  • 打造个性化的合乎Linux爱好者需求的Redflag Linux 之一[通俗易懂]

    打造个性化的合乎Linux爱好者需求的Redflag Linux 之一[通俗易懂]前言:   红旗RedflagLinuxDeskTop5.0正式版发行距离现在已经有好几个月了吧(官方的发行说明是3月3日的),对于国产的系统当然是叫骂/声讨的多于赞美的了.中肯一点的说:红旗一直在进步的。当然,做的还不够,为什么说红旗烂?当然也是有原因的,个人理解,原因之一就是:缺少了N多LINUX爱好者所需求的基本软件。以下我就是记录我使用改装红旗LINUX的点滴过程来描述作为一个l

    2022年8月20日
    7
  • Windows 10 本地 IIS Web服务器搭建

    Windows 10 本地 IIS Web服务器搭建IIS服务器搭建启用功能①右击我的电脑点击属性,进入windows10控制面板。然后点击控制面板②点击进入程序和功能,然后点击启用或关闭windows功能,打开windows功能窗口,选择InternetInformationServices选项,将里面的内容全部勾选。如图:③勾选完成后,点击确定按钮,windows自动安装IIS功能,完成…

    2022年5月11日
    53
  • 手机也能跑大模型?DeepSeek-r1 部署教程来了!

    手机也能跑大模型?DeepSeek-r1 部署教程来了!

    2026年3月16日
    5
  • JAVA map排序实现

    JAVA map排序实现Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sortbykey),按值排序(sortbyvalue)。1、按键排序jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求,向其构造方法TreeMap(Comparator<?superK>comparator)传入我们自定义的比较器即可实…

    2022年7月15日
    20
  • 小白也能用的Hunyuan-MT-7B:一键部署教程与界面演示

    小白也能用的Hunyuan-MT-7B:一键部署教程与界面演示

    2026年3月12日
    3
  • leetcode-46全排列[通俗易懂]

    leetcode-46全排列[通俗易懂]原题链接给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]题解回溯即可class Solution {public: vector<vector<int> >res; vector<int>t; void dfs(int num,int len,vecto

    2022年8月9日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号