特征预处理

2.4.1 什么事特征预处理

为什么要进行归一化、标准化

无量纲化

2.4.2归一化:对于归一化来说,如果出现异常点,影响了最大值和最小值,那么结果显然是会发生改变的

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

异常值:最大值 最小值

2.4.3 标准化:对于标准化来说,如果出现异常点,由于具有一定数据量,少量的异常点,对于平均值的影响并不大,从而方差改变较小

(x - mean)/ std

标准差:集中程度

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

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

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

    return None

def stand_demo():
    """
    标准化
    :return: 
    """
    # 1 获取数据
    data = pd.read_csv("lizi")
    data = data.iloc[:, :3]
    print("data:\n", data)
    
    # 2 实例化一个转换器类
    transfer = StandardScaler
    
    # 3 使用fit_transfer
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new)
    return None

由于 factor_returns.csv 没有找到,所以不知道可不可以运行

def variance_demo():
    """
    过滤低方差特征
    :return:
    """
    # 1、获取数据
    data = pd.read_csv("factor_returns.csv")
    data = data.iloc[:, 1:-2]
    print("data:\n", data)
    
    # 2、实例化一个转化器
    transfer = VarianceThreshold(threshold=10)
    
    # 3、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new, data_new.shape)
    
    return None

2.5.1 降维 - 降低维度

ndarray

维数 : 嵌套的层数

二维数组

此处的降维:降低特征的个数

效果: 特征与特征之间不相关

2.5.1 降维

特征选择

Filter过滤式

方差选择法:低方差特征过滤

相关系数 - 特征与特征之间的相关程度

取值范围: -1 ~1

特征与特征之间的相关性很高:

1)选取其中一个

2)加权求和

3)主成分分析

Embeded嵌入式

def variance_demo():
    """
    过滤低方差特征
    :return:
    """
    # 1、获取数据
    data = pd.read_csv("factor_returns.csv")
    data = data.iloc[:, 1:-2]
    print("data:\n", data)

    # 2、实例化一个转化器
    transfer = VarianceThreshold(threshold=10)

    # 3、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new, data_new.shape)
    
    # 计算两个变量之间的相关系数
    r1 = pearsonr(data["pe_ratio"], data["pb_ratio"])
    print("相关系数:\n", r1)
    r2 = pearsonr(data['revenue'], data['total_expense'])
    print("revenue与total_expense之间的相关性:\n", r2)

    return None

决策树 正则化 深度学习

主成分分析:

2.6.1 什么是主成分分析(PCA)

sklearn.decomposition.PCA(n_compinents=None)

n_components 

def pca_demo():
    """
    PCA
    :return:
    """
    data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]

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

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

小数  表示保留百分之多少的信息量

整数 减少到多少特征

2.6.2案例探究用户对物品类别的喜好细分

用户                  物品类别

1)需要将user_id和aisle放在同一个表中 —— 合并

2)找到user_id和aisle —— 交叉表和透视表

3)特征冗余过多 ——> PCA降维

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值