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

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

what

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

特征工程包含内容

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

二、特征预处理

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

特征预处理API

sklearn.preprocessing

数值型数据的无量纲化

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

- 归一化
1. 定义

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

2.公式

视频12 ——8:00~

在这里插入图片描述

用法举例
在这里插入图片描述

3.API

在这里插入图片描述

导入:

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.公式

在这里插入图片描述

3.API

导入

from sklearn.preprocessing import StandardScaler

在这里插入图片描述
用例:

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值