3810-吕同学-人工智能学科-量化金融方向 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

SVD比PCA快得多

一、2个重要参数

1、svd_solver

"auto":数据量小选full,大则选randomized

"full":生成完整的矩阵,数据量不大一般选用

"randomized":适合特征矩阵巨大,计算量大。

"arpack”:适合特征矩阵大,一般用于特征矩阵为稀疏矩阵(每一列为0,1组成,大部分为0)

注:一般选"auto", 算不出来找"randomized"

2、random_state: 

svd_solver为"randomized""arpack”生效,通常选"auto"

二、重要属性components_:提出的值是V(k,n),表示新特征空间,可视化可以看出提取了什么重要信息,n维压缩到k维

[展开全文]
3077_Yuki · 2022-07-07 · 自由式学习 0

SVD比PCA快得多

一、2个重要参数

1、svd_solver

"auto":数据量小选full,大则选randomized

"full":生成完整的矩阵,数据量不大一般选用

"randomized":适合特征矩阵巨大,计算量大。

"arpack”:适合特征矩阵大,一般用于特征矩阵为稀疏矩阵(每一列为0,1组成,大部分为0)

注:一般选"auto", 算不出来找"randomized"

2、random_state: 

svd_solver为"randomized""arpack”生效

 

[展开全文]
3077_Yuki · 2022-07-07 · 自由式学习 0

3)按信息量占比选择

n_components=[0,1]之间浮点数,且让参数scd_solver='full'(n_components=0.97,scd_solver='full'选出使保留信息量超过0.97的信息量的特征),比较快可以多用

[展开全文]
3077_Yuki · 2022-07-07 · 自由式学习 0

降维算法

一、维度概述

1、对数组和Series,shape中返回几个数字就是几维,几个方括号就是几维

2、特征矩阵,DataFrame,几个特征就是几维,对应图中几个坐标轴,降维降的是特征数量

二、降维算法decomposition.PCA:主成分分析

1、PCA使用的信息量衡量指标为样本方差,越大,该特征带有信息量越多。

2、降维后找到的每个新特征向量叫“主成分”,新特征没有可读性,属于特征创造。线性回归不适合使用PCA。

3、重要参数

1)n_components:降维后要保留的特征数量,一般选 0-最小维度(特征数和标签数比较小的值) 范围内整数,默认为最小维度。如果需要可视化,取2或3.

2)如何选择n_components?

累积可解释方差贡献率曲线。横坐标:降维后保留的特征个数,纵坐标:累积可解释方差贡献率(选1个特征多少总信息,2个特征多少总信息...)

plt.plot([1,2,3,4],np.cumsum(pca_line.explained_variance_ratio_))

最大似然估计自选超参数。n_components="mle",计算量大

4、重要属性

1)属性explained_variance:查看降维后每个新特征信息量大小

2)属性explained_variance_ratio:查看降维后每个新特征信息量占原始数据信息量百分比

三、降维算法SVD

降维算法计算量很大

[展开全文]
3077_Yuki · 2022-07-07 · 自由式学习 0

降维算法

一、维度概述

1、对数组和Series,shape中返回几个数字就是几维,几个方括号就是几维

2、特征矩阵,DataFrame,几个特征就是几维,对应图中几个坐标轴,降维降的是特征数量

二、降维算法decomposition.PCA:主成分分析

1、PCA使用的信息量衡量指标为样本方差,越大,该特征带有信息量越多。

2、降维后找到的每个新特征向量叫“主成分”,新特征没有可读性,属于特征创造。线性回归不适合使用PCA。

3、重要参数

三、降维算法SVD

降维算法计算量很大

[展开全文]
3077_Yuki · 2022-07-07 · 自由式学习 0

一、维度概述

1、对数组和Series,shape中返回几个数字就是几维,几个方括号就是几维

2、特征矩阵,DataFrame,几个特征就是几维,降维降的是特征数量

二、降维算法decomposition.PCA:主成分分析

三、降维算法SVD

[展开全文]
3077_Yuki · 2022-07-07 · 自由式学习 0

包装法:

特征选择(专门算法)和训练同时进行,可以与任何有coef_, feature_importances_属性的模型一起使用,计算成本小于嵌入法

  • 使用feature_selection.RFE类:迭代选取特征。
  • 参数estimator:实例化后的评估器,n_features_to_select:想选的特征数,step:每迭代一次删去的特征数
  • 属性.support_:特征是否被选中的不二矩阵,.ranking_:特征重要性排名,前面越重要。(训练后查看属性,不要转化)
  • 计算量大,优先使用方差过滤和互信息法;逻辑回归,嵌入法优先;支持向量机,包装法优先;没思路,过滤法开始
[展开全文]
3077_Yuki · 2022-07-07 · 自由式学习 0

嵌入法

1、特征选择与算法训练同时进行,算法自己选择用哪些特征。计算速度与算法相关,可能十分缓慢,大型数据中优先选过滤法或包装法

2、使用模块feature_selection.SelectFromModel,可以与任何有coef_, feature_importances_属性的模型一起使用

3、两个重要属性
1)estimator:模型评估器,模型要先实例化

2)threshold:特征重要性阈值,低于则删除,通过学习曲线确定这个属性的最佳取值

[展开全文]
3077_Yuki · 2022-07-07 · 自由式学习 0

嵌入法

特征选择与算法训练同时进行,算法自己选择用哪些特征。计算速度与算法相关,可能十分缓慢。

feature_selection.SelectFromModel,可以与任何有coef_, feature_importances_属性的模型一起使用

[展开全文]
3077_Yuki · 2022-07-07 · 自由式学习 0

2)相关性过滤

卡方过滤:

  • 专门针对分类问题,不能计算负数,chi2(x,y)返回卡方值和p值
  • feature_selection.chi2,结合feature_selection.SelectKBest(选出前k分数最高特征)
  • 如何选择k值(想保留特征值)?使用p值。p小于0.05或0.01:特征与标签相关。k=(chi_value.shape[0]-(p_value>0.05).sum())#特征数-想删除的特征数

F检验:

  • 捕捉特征与标签之间的线性关系,返回F值和P值
  • feature_selection.f_classif(F检验分类),feature_selection.f_regression(F检验回归),需要与feature_selection.SelectKBest连用
  • F检验在数据服从正态分布时效果好,先把数据转换成正态分布形式
  • p小于0.05或0.01:特征与标签显著线性相关

互信息法:

  • 捕捉特征与标签任意关系,返回特征与标签之间互信息量的估计,0:独立,1:相关
  • feature_selection.mutual_info_classif(互信息分类),feature_selection.mutual_info_regression(互信息回归)
[展开全文]
3077_Yuki · 2022-07-06 · 自由式学习 0

2)相关性过滤

卡方过滤:

  • 专门针对分类问题,不能计算负数
  • feature_selection.chi2,结合feature_selection.SelectKBest(选出前k分数最高特征)
  • chi2(x,y)返回卡方值和p值,
  • 如何选择k值(想保留特征值)?使用p值。p小于0.05或0.01:特征与标签相关。k=(chi_value.shape[0]-(p_value>0.05).sum())#特征数-想删除的特征数

F检验

[展开全文]
3077_Yuki · 2022-07-06 · 自由式学习 0

特征选择feature_selection

一、理解数据:根据业务理解选择数据(特征选择之前要与数据提供者沟通)

二、四种选择方法

1、过滤法:根据统计指标过滤,目标是降低计算成本

过滤法主要对象:需要遍历特征或升维的算法(最近邻算法KNN、支持向量机SVM、神经网络、回归算法、单棵决策树)

1)方差过滤:VarianceThreshold模块:

  • 优先消除方差为0(每个数据都一样)的特征
  • 重要参数threshold:方差阈值,小于删除,默认为0
  • 特征是二分类时,方差=p(1-p),p为其中一特征概率
  • 对算法的影响:阈值小-过滤特征少-影响不大;阈值大-过滤特征多-模型可能更好 or 更糟
  • 如何选择threshold?一般只使用0或很小的值,再用更优的特征选择方式

2、嵌入法

3、包装法

4、降维算法

特征提取feature extraction

特征创造feature creation

[展开全文]
3077_Yuki · 2022-07-06 · 自由式学习 0

特征选择feature_selection

一、理解数据:根据业务理解选择数据(特征选择之前要与数据提供者沟通)

二、四种选择方法

1、过滤法:根据统计指标过滤

1)方差过滤:VarianceThreshold模块:

  • 优先消除方差为0(每个数据都一样)的特征
  • 重要参数threshold:方差阈值,小于删除,默认为0

2、嵌入法

3、包装法

4、降维算法

特征提取feature extraction

特征创造feature creation

[展开全文]
3077_Yuki · 2022-07-06 · 自由式学习 0

四、处理连续型特征:二值化与分段

prepscessing.Binarizer二值化,文本数据常见操作

属性threshold:设置阈值,大于阈值1,小于0

prepscessing.KBinsDiscretizer分箱

1、3个参数

1)n_bins:分箱个数,默认5

2)encode:默认"onehot"

"onehot":一列一类,有该类1,无0

"ordinal":有几个特征几列,每个特征用数字显示类别

"onehot-dense"不常用

3)strategy:定义箱宽,默认"quantile"

"uniform":等宽分箱,特征值极差/箱数

"quantile":等位分箱,每箱样本数相同

"kmeans":聚类分箱,分类,同类一箱

 

[展开全文]
3077_Yuki · 2022-07-06 · 自由式学习 0

三、处理分类型特征:编码与哑变量

1、preprocessing.LabelEncoder:把分类转换为分类数值

classes_属性,查看标签中有多少类别

2、preprocessing.OrdinalEncoder:特征编码模块,把分类转换成数字,类别独立

categories_属性,查看每个特征中有多少类别

3、preprocessing.OneHotEncoder:独热编码,特征转换成哑变量,分类有联系

参数categories,='auto'自己找找有几类

接口get_feature_names():返回稀疏矩阵每一列列的类别

独热编码处理方法:合并表,删除列,改列索引

4、preprocessing.LabelBinarizer标签 

[展开全文]
3077_Yuki · 2022-07-06 · 自由式学习 0

二、缺失值处理

用来填缺失值的类:impute.SimpleImputer

1、四个参数

1)missing_values:缺失值长什么样,默认np.nan

2)strategy:填补策略,默认均值"mean","median"中位数,"most_frequent"众数,"constant"数值(只有前两个可填数字型)

3)fill_value:策略为constant使用,表示要填充的值,常用0

4)copy:默认为True,创建副本

[展开全文]
3077_Yuki · 2022-07-06 · 自由式学习 0

二、缺失值处理

用来填缺失值的类:impute.SimpleImputer

1、四个参数

1)missing_values:缺失值长什么样,默认np.nan

2)strategy:填补策略,默认均值"mean"

3)fill_value:策略为constant使用,表示要填充的值,常用0

4)copy:默认为True,创建副本

[展开全文]
3077_Yuki · 2022-07-06 · 自由式学习 0

数据预处理与特征工程

数据挖掘的五大流程:获取数据、数据预处理、特征工程、建模、上线验证

数据预处理preprocessing & impute

一、数据无量纲化(统一规格,特例:决策树、树的集成算法不需要)

1、中心化 zero-centered/mean subtraction

本质是所有记录减去一个固定值

1)preprocessing.MinMaxScaler

  • 数据归一化Normalization:数据收敛到[0,1]之间,归一化后的数据服从正态分布
  • 参数feature_range:控制缩放范围,默认[0,1]
  • 如何用numpy实现归一化?使用公式

    import numpy as np
    x=[[-1,2],[-0.5,6],[0,10],[1,18]]
    x=np.array(x)#转成数组
    #归一化
    x_nor=(x-x.min(axis=0))/(x.max(axis=0)-x.min(axis=0))
    x_nor

2)preprocessing.StandardScaler

  • 数据标准化Standardization/Z-score normalization:把数据变成标准正态分布(均值为0,方差为1)
  • 标准化训练完查看均值和方差的属性?(自动按列计算)
    scaler.mean_
    scaler.var_

3)如何选择?

  • 归一化对异常值敏感,一般选标准化
  • 不涉及协方差计算、需要压缩到某个区间:归一化
  • 只压缩,不中心化:MaxAbsScaler
  • 异常值多、噪声大分位数RobustScaler

2、缩放处理 scale

本质是所有记录除以一个固定值

[展开全文]
3077_Yuki · 2022-07-06 · 自由式学习 0