机器学习笔记【二】——特征工程

特征工程

  • what
  • 特征工程包含内容
    • 二、特征预处理
      • 特征预处理API
      • 数值型数据的无量纲化
        • - 归一化
          • 1. 定义
          • 2.公式
          • 3.API
          • 4.归一化缺陷
        • - 标准化
          • 1.定义
          • 2.公式
          • 3.API
          • 4. 标准化总结
    • 三、特征降维
      • 特征选择
        • 1.定义
        • 2.方法
          • 1. Filter 过滤式
          • 2.Eembeded嵌入式
        • 3.模块
      • 主成分分析
        • 2.API
        • 3.例子

业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已

what

(看看就好)
特征工程是使用专业背景只是和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。
意义:会直接影响机器学习的效果

特征工程包含内容

  • 特征抽取
  • 特征预处理
  • 特征降维

二、特征预处理

通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程

特征预处理API

sklearn.preprocessing

数值型数据的无量纲化

why?
为了让数据同等重要。不会因某些数值差距比较大,单一地影响(支配)最后结果。

- 归一化

1. 定义

通过对原始数据进行变换吧数据映射到(默认为[0,1])之间

2.公式

视频12 ——8:00~

机器学习笔记【二】——特征工程_第1张图片

用法举例
机器学习笔记【二】——特征工程_第2张图片

3.API

机器学习笔记【二】——特征工程_第3张图片

导入:

from sklearn.preprocessing import MinMaxScaler, StandardScaler 

使用例子:

def minmax_demo():
    """
    归一化
    :return:
    """
    # 1、获取数据
    data = pd.read_csv("dating.txt")
    data = data.iloc[:, :3]
    print("data:\n", data)

    # 2、实例化一个转换器类
    transfer = MinMaxScaler(feature_range=[2, 3])

    # 3、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new)

    return None
4.归一化缺陷

异常值或缺失值刚好为 最大值,最小值。那就会影响比较大了。鲁棒性(稳定性)较差

- 标准化

1.定义

通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内

2.公式

机器学习笔记【二】——特征工程_第4张图片

3.API

导入

from sklearn.preprocessing import StandardScaler

机器学习笔记【二】——特征工程_第5张图片
用例:

def stand_demo():
    """
    标准化
    :return:
    """
    # 1、获取数据
    data = pd.read_csv("dating.txt")
    data = data.iloc[:, :3]
    print("data:\n", data)

    # 2、实例化一个转换器类
    transfer = StandardScaler()

    # 3、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new)
    return None
4. 标准化总结

在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。

三、特征降维

降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量过程。
在这里插入图片描述
降维 - 降低维度
ndarray
维数:嵌套的层数
0维 标量
1维 向量
2维 矩阵
3维
n维

降低的对象:二维数组
此处的降维:降低特征的个数
效果:特征与特征之间不相关

特征选择

1.定义

大家都有的特征就不合适,所有样本的共同特征就是冗余
在这里插入图片描述

2.方法

1. Filter 过滤式

主要探究特征本身特点,特征与特征和目标值之间关联

  • 方差选择法:低方差特征过滤(方差比较小,即大家的都差不多,就可以过滤掉)
    相关系数 - 衡量特征与特征之间的相关程度
2.Eembeded嵌入式

算法自动选择特征(特征与目标)

  • 决策树:信息熵,信息增益
  • 正则化:L1,L2
  • 深度学习(卷积等)

3.模块

sklearn.feature_selection

主成分分析

2.API

  • sklearn.decomposition.PCA(n_components=None)
    • 将数据分解为较低维数空间

    • n_components:

      • 小数 表示保留百分之多少的信息
      • 整数 减少到多少特征
    • PCA.fit_transform(X)
      X:numpy array格式的数据
      [n_samples,n_features]

    • 返回值:转换后指定维度的array

3.例子

导入PCA

from sklearn.decomposition import PCA
def pca_demo():
    """
    PCA降维
    :return:
    """
    data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]

    # 1、实例化一个转换器类
    transfer = PCA(n_components=0.95)

    # 2、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new)
    return None

你可能感兴趣的:(机器学习,机器学习,数据分析)