【python机器学习笔记】day2

【python机器学习笔记】day2

    • 理论阶段
      • 数据降维
    • 代码阶段
      • 需要的模块
      • 模块安装
      • VarianceThreshold()类
        • 简介
        • 代码
      • PCA()类
        • 简介
        • 代码

理论阶段

数据降维

  • 特征选择
    • 特征选择是什么
      特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也可以不改变值,但是选择后地特征维数肯定比选择前小,毕竟我们只选择了其中地一部分特征。

    • sklearn特征选择API
      主要方法(三大武器):

      • Filter(过滤式):VarianceThreshold
      • Embedded(嵌入式):正则化、决策树
      • Wrapper(包裹式)
    • 其他特征选择方法

    • 特征选择的原因

      • 冗余:部分特征的相关度高,容易消耗计算机性能
      • 噪声:部分特征对预测结果有影响
  • 主成分分析
    • sklearn.decomposition
    • PCA 是什么
      • 本质:PCA是一种分析、简化数据集地技术
      • 目的:是数据位数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
      • 作用:可以消减回归分析或者聚类分析中特征的数量

代码阶段

需要的模块

我们本次机器学习的课程使用的python程序库:

sklearn

模块安装

在键盘上按win+R,输入cmd,确定后,输入  pip install sklearn

VarianceThreshold()类

简介

feature_selection 意思是特征选择
Variance 意思是方差
Threshold 意思是阈值

VarianceThreshold(threshold=0.0) 删除所有低方差特征
Variance.fit_transform(X)
X:numpu array 格式地数据[n_samples, n_features]
返回值:训练集差异低于threshold地特征将被删除。
默认值是保留所有非零方差特征,即删除所有样本中具有相同值地特征

代码

from sklearn.feature_selection import VarianceThreshold

def var():
    """
    特征选择-删除低方差地特征
    :return: None
    """
    # VarianceThreshold(threshold=0.0) 删除所有低方差特征
    # Variance.fit_transform(X)
    # X:numpu array 格式地数据[n_samples, n_features]
    # 返回值:训练集差异低于threshold地特征将被删除。
    # 默认值是保留所有非零方差特征,即删除所有样本中具有相同值地特征
    var = VarianceThreshold(threshold=0.0)

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

    source = var.inverse_transform(data)

    print(source)

    # var.inverse_transform(data)得到数据可知,在VarianceThreshold中数据不可逆
    """
    原始数据:
    [[0, 2, 0, 3], 
    [0, 1, 4, 3], 
    [0, 1, 1, 3]]
     source 得到的数据:
     [[0 2 0 0]
     [0 1 4 0]
     [0 1 1 0]]
     data 数据:
     [[2 0]
     [1 4]
     [1 1]]
     Threshold = 0.0 即去除掉方差为0地特征
    
    """

    print(data)

    return None

if __name__ == '__main__':

    var()

PCA()类

简介

  • PCA 是什么
    • 本质:PCA是一种分析、简化数据集地技术
    • 目的:是数据位数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
    • 作用:可以消减回归分析或者聚类分析中特征的数量

代码

from sklearn.decomposition import PCA

def pca():
    """
    主成分分析进行特征降维
    :return: None
    """
    # PCA(n_components=0.9) 将爱护据分解为较低维数空间
    # PCA.fit_transform(X)
    # X:numpy array格式的数据[n_samples, n_features]
    # 返回值:转换后指定维数的array

    pca = PCA(n_components=0.9)

    data = pca.fit_transform([[2, 8, 4, 5], [6, 3, 0, 8], [5, 4, 9, 1]])

    source = pca.inverse_transform(data)

    print(source)

    print(data)

    """
    原始数据:
    [[2, 8, 4, 5], 
    [6, 3, 0, 8], 
    [5, 4, 9, 1]]
    
    source 数据:
    [[ 2.0000000e+00  8.0000000e+00  4.0000000e+00  5.0000000e+00]
    [ 6.0000000e+00  3.0000000e+00 -8.8817842e-16  8.0000000e+00]
    [ 5.0000000e+00  4.0000000e+00  9.0000000e+00  1.0000000e+00]]
    
    data 数据:
    [[ 1.22879107e-15  3.82970843e+00]
    [ 5.74456265e+00 -1.91485422e+00]
    [-5.74456265e+00 -1.91485422e+00]]
    
    """

    return None

if __name__ == '__main__':

    pca()

你可能感兴趣的:(【python机器学习】)