特征筛选问题思考

前言

提取了很多特征,但是这些特征那些是有效的呢?那些特征是可以剔除的呢?基于此问题,本博客来讨论一下。

PCA校验

数据集可以自己弄来,可能需要归一化。

import pandas as pd
import numpy as np
from sklearn.decomposition import PCA  
from pandas.core.frame import DataFrame


dataPath = "datalab/36395/"
dataFile = "dataProcessByTwoTask.csv"

data = pd.read_csv(dataPath + dataFile , encoding='utf-8')

print(data.shape)
print(data.head(2))

ab = np.arange(69)
print(ab)
X_train = data.iloc[ab]


pca_sk = PCA(n_components=50) 

// 利用训练特征决定50个正交维度的方向,并转化原训练特征

pca_X_train = pca_sk.fit_transform(X_train)
#pca_X_test = pca_sk.transform(X_train)


print("降维后数据集规模:{}".format(pca_X_train.shape))
print(pca_X_train[0:2])

运行 - 结果:


4423, 70)
   take_amount_in_later_12_month_highest  trans_amount_increase_rate_lately  \
0                                      0                               0.90   
1                                   2000                               1.28   

   transd_mcc  trans_days_interval_filter  trans_days_interval  \
0        17.0                        27.0                 26.0   
1        19.0                        30.0                 14.0   

   repayment_capability  number_of_trans_from_2011  historical_trans_day  \
0                 19890                       30.0                 151.0   
1                 16970                       23.0                 224.0   

   rank_trad_1_month  trans_amount_3_month             ...              \
0               0.40                 34030             ...               
1               0.35                 10590             ...               

   loans_avg_limit  consfin_credit_limit  consfin_credibility  \
0           1688.0                1200.0                 75.0   
1           1758.0               15100.0                 80.0   

   consfin_org_count_current  consfin_product_count  consfin_max_limit  \
0                        1.0                    2.0             1200.0   
1                        5.0                    6.0            22800.0   

   consfin_avg_limit  latest_query_day  loans_latest_day  \
0             1200.0              12.0              18.0   
1             9360.0               4.0               2.0   

   first_transaction_time_day  
0                          17  
1                           2  

[2 rows x 70 columns]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68]


降维后数据集规模:(69, 50)
[[ -1.07522268e+05  -6.30441595e+03   2.82432053e+03  -1.93347881e+04
   -1.65625183e+03  -8.86291024e+03   4.69082780e+02  -5.41692974e+02
    9.59855188e+02  -1.17498610e+03  -8.27317923e+02   7.44677439e+02
   -2.95320251e+02   1.00262713e+03   2.88593126e+02  -1.67027282e+02
    1.00704755e+01  -5.51748767e+00  -2.64264010e+01   1.03976939e+01
    2.41833376e+00  -8.67013872e+00  -1.39779453e+01   1.55178837e+00
   -6.08964397e+00  -4.07650452e+00  -1.59907843e+01   4.33065850e+00
    7.00473045e+00  -1.01812729e+01  -1.90941839e+00  -3.02104040e+00
   -6.30292531e+00   7.82081815e+00  -4.50838859e-01  -2.44343401e-01
   -2.33156766e+00  -1.55272399e+00   6.03854544e-01  -4.44479902e-01
   -3.94035823e+00  -1.42114318e+00  -1.58559025e+00   3.19432485e+00
    3.16414591e+00  -1.11029179e+00   1.89054341e-01   3.52892846e+00
   -2.48207266e-01  -3.74139917e-02]
 [ -1.07287429e+05  -1.15331483e+04  -1.47156042e+04   9.74568582e+03
   -8.83707652e+03  -1.80063437e+03  -2.02682915e+03   2.20253946e+03
    2.18952762e+03   5.81271155e+02   7.46027569e+02   9.23489176e+02
    1.74562840e+02  -9.05207703e+01   7.89127100e+00   3.50719339e+01
    8.87024342e+01   1.07562984e+02  -3.73552973e+01  -4.56951209e+00
    1.41880195e+01   1.64441214e+01  -8.28721202e-01  -3.01259284e+00
   -4.83479942e+00   2.43014026e+00  -1.37180875e+01  -6.89473596e+00
    5.67154532e+00   1.29839303e+00  -6.05073773e+00  -1.66655939e+00
    1.22784208e+01  -2.05540945e+00   1.63740245e+00  -1.60083170e-01
    3.87686452e+00   3.48324574e+00   1.33216991e+00   5.51007857e-01
   -8.96974992e-01  -5.30343056e+00   4.21107917e+00  -1.04052498e+00
   -1.93495138e+00  -2.78269936e+00  -1.00751398e+00   1.55444165e+00
    2.30216194e-01  -6.47515436e-01]]

PCA优势与劣势

PCA 主成分分分析,跟特征选取是有区别的,它是竟可能的保留原特征的方差,采取生成新特征的方法,所以用PCA是看不到降维后的具体特征名字,用于减少数据集的维度,同时保持数据集中使方差贡献最大的特征。改变了原来特征的形式。

  • PCA算法的主要优点有:
    1)仅仅需要以方差衡量信息量,不受数据集以外的因素影响。 
    2)各主成分之间正交,可消除原始数据成分间的相互影响的因素。
    3)计算方法简单,主要运算是特征值分解,易于实现。

  • PCA算法的主要缺点有:
    1)主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。
    2)方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

特征筛选

采用了wrapper(封装式)特征筛选法,以lgb模型作为筛选模型,通过递归特征消除的方式最终筛选得到了最优的特征子集,这样可以有效减小特征维度并增强模型泛化能力。具体来说就是原始特征数为N,每次删除K个特征并检验当前N-K个特征下的模型得分,如果当前得分有所提高,则取当前N-K个特征为最优特征子集,继续下一次循环,再删除k个特征,以此类推,可以求得最优特征子集。

参考博客

PCA降维与特征选取的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值