zoukankan      html  css  js  c++  java
  • 机器学习——基础

    整理自:

    https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1

    • 数据归一化(或者标准化,注意归一化和标准化不同)的原因
    • SVD和PCA
    • 防止过拟合的方法 
    • 数据不平衡问题

    1.数据归一化(或者标准化,注意归一化和标准化不同)的原因

    要强调:能不归一化最好不归一化,之所以进行数据归一化是因为各维度的量纲不相同。而且需要看情况进行归一化。

    • 有些模型在各维度进行了不均匀的伸缩后,最优解与原来不等价(如SVM)需要归一化。
    • 有些模型伸缩有与原来等价,如:LR则不用归一化,但是实际中往往通过迭代求解模型参数,如果目标函数太扁(想象一下很扁的高斯模型)迭代算法会发生不收敛的情况,所以最坏进行数据归一化。

    补充:其实本质是由于loss函数不同造成的,SVM用了欧拉距离,如果一个特征很大就会把其他的维度dominated。而LR可以通过权重调整使得损失函数不变。


    2.SVD和PCA

    PCA的理念是使得数据投影后的方差最大,找到这样一个投影向量,满足方差最大的条件即可。而经过了去除均值的操作之后,就可以用SVD分解来求解这样一个投影向量,选择特征值最大的方向。


    3.防止过拟合的方法 

    过拟合的原因是算法的学习能力过强;一些假设条件(如样本独立同分布)可能是不成立的;训练样本过少不能对整个空间进行分布估计。 
      处理方法:

      • 早停止:如在训练中多次迭代后发现模型性能没有显著提高就停止训练
      • 数据集扩增:原有数据增加、原有数据加随机噪声、重采样
      • 正则化
      • 交叉验证
      • 特征选择/特征降维

     4.数据不平衡问题

    解决方法如下:

    • 采样,对小样本加噪声采样,对大样本进行下采样
    • 进行特殊的加权,如在Adaboost中或者SVM中
    • 采用对不平衡数据集不敏感的算法
    • 改变评价标准:用AUC/ROC来进行评价
    • 采用Bagging/Boosting/ensemble等方法
    • 考虑数据的先验分布
  • 相关阅读:
    自定义Collection类
    基本排序算法(冒泡排序,选择排序,插入排序)
    泛型
    XSD的学习
    SSH整合配置
    一个可以随时插入的json的简单实现
    将Properties文件的键值对调换位置重新生成一个文件
    JAVA MD5加密
    框架中退出登录
    java 生成 xml
  • 原文地址:https://www.cnblogs.com/helloworld0604/p/9016940.html
Copyright © 2011-2022 走看看