机器学习基础课【Day2】:数据降维(附详细代码注释)

如果特征多,信息量少,噪声高。此时需要特征降维,一般有两种方式。

1. 特征选择

一般是人为筛选,主要方法:过滤式(方差阈值 VarianceThreshold),嵌入式(正则化,决策树),包裹式。

这里介绍一下方差阈值:假设某特征的特征值只有0和1,并且在所有输入样本中,95%的实例的该特征取值都是1,那就可以认为这个特征作用不大。如果100%都是1,那这个特征就没意义了。当特征值都是离散型变量的时候这种方法才能用,如果是连续型变量,就需要将连续变量离散化之后才能用。

python代码如下:

from sklearn.feature_selection import VarianceThreshold
from  sklearn.decomposition import PCA

def var():
    """
    特征选择-删除低方差的特征
    :return: None
    """
    # 默认参数选择是删除方差为0的特征,也就是相同的特征,这个选择按照效果来
    var = VarianceThreshold(threshold=0.0)

    data = var.fit_transform([[0,3,4,5], [0,1,4,3], [0,1,1,3]])

    print(data)

    return None

运行结果:

可见全为0的特征消除了

2. PCA(Principal Component Analysis)主成分分析

高维数据可能相关度比较大,比如之间的关系有缩放,加减。PCA是一种分析和简化的技术,损失少量信息来达到降维的目的。

实际工作中可以削减回归分析或者聚类分析中的特征数量。一般是特征数量达到上百的时候,考虑降维问题,PCA之后数据也会改变,数量也会减少。

python代码如下:

def pca():
    """
    特征选择-主成分分析进行特征降维
    :return: None
    """
    # 百分比范围(0.9-0.95比较常用)或者特征保留个数
    pac = PCA(n_components = 0.9)
    # 结果的值并没有实际意义,是新的数据
    data = pac.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])

    print(data)

    return None
    
if __name__ == "__main__":
    pca()

运行结果:
在这里插入图片描述
数量类型:离散型数据:记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据全部是整数,区间内不可分。(多用于分类)
连续型数据:变量可在某一个范围内取值,区间可分。(多用于回归)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值