1.导入数据
2.数据预处理:
2.1标准化:
把数据按比例缩放,使之落入一个小的空间里。常用的方法有:
1.z-score标准化(或零-均值规范化),经过处理后的数据均值为0,标准差为1,处理方法是:
z-score其中μ是样本的均值,σ是样本的标准差
2.区间放缩法/线性转换:
y=( (x-MinValue) / (MaxValue-MinValue) )(new_MaxValue-new_MinValue)+new_minValue
2.2归一化:
归一化把有量纲的数据转化成无量纲数据,且归到[0,1]区间内,常见的方法有:
1.区间放缩法/线性转换:
区间放缩法/线性转换其中min是样本中最小值,max是样本中最大值,最大值与最小值非常容易受异常点影响。
2.对数函数转换:
y=log10(x)
标准化和归一化的区别:
标准化是将数据压缩到一个小的区间;而归一化是将样本的特征值转换到同一量纲下把数据映射到[0,1]区间内。
2.3定量特征二值化:
以某个值为阈值,转换为0,1变量
eg 将用户的对某类产品的近3个月的购买频次二值化,设置>10次算做频繁购买,<=10次算不频繁购买;(这个例子可能不够好)
2.4定性特征哑编码
哑变量:也叫虚拟变量,引入哑变量的目的是,将不能够定量处理的变量量化,如职业、性别对收入的影响,这种“量化”通常是通过引入“哑变量”来完成的。根据这些因素的属性类型,构造只取“0”或“1”的人工变量。
eg 假设变量“职业”的取值分别为:工人、农民、学生、企业职员、其他,5种选项,我们可以增加4个哑变量来代替“职业”这个变量,分别为D1(1=工人/0=非工人)、D2(1=农民/0=非农民)、D3(1=学生/0=非学生)、D4(1=企业职员/0=非企业职员),最后一个选项“其他”的信息已经包含在这4个变量中了,所以不需要再增加一个D5(1=其他/0=非其他)了
2.5连续数据离散化
将连续的特征,做分组处理,使其离散化,
eg团购所有的deal的折扣分布,是从0到10折之间的连续的值,我们可以按照步长为1折进行分组。所以所有折扣可以分为0~1折;1~2折...9~10折
2.6缺省值填补,missing value
对于缺失值填补有几种方式,均值填补、中位数、众数等统计上的数据填补。或者使用机器学习预测数据进行填补
eg 比如上面例子中的折扣我们可以使用均值(mean)填补,但是对于性别缺省的我们无法填补,这时候可以使用机器学习进行性别预测(当然预测的效果只有你自己知道)
2.7交叉特征:
有些特征需要交叉才有意义:示例
2.8降维
3.特征选择
3.1 Filter法(过滤法)
按照变量内部特征或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数选择特征.与特定的学习算法无关,因此具有较好的通用性,作为特征的预筛选器非常合适。缺点主要是由于算法的评价标准独立于特定的学习算法,所选的特征子集在分类准确率方面通常低于Wrapper方法。
1方差选择法:计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征,简单来说方差过小的特征,说明特征值变化不大,这样的特征会导致后面学习效果比较差,所以我们应该尽量选方差较大的特征。
2.相关系数计算法:可以使用皮尔逊系数计算特征自标量和目标值因变量之间的相关系数。[-1,1]之间,大于1正相关,小于1负相关,等于0 不相关。
3.卡方检验
4.互信息
3.2 Wrapper法(封装法)
封装式特征选择是利用学习算法的性能来评价特征子集的优劣。因此,对于一个待评价的特征子集,Wrapper方法需要训练一个分类器,根据分类器的性能对该特征子集进行评价,学习算法包括决策树、神经网络、贝叶斯分类器、近邻法以及支持向量机等。Wrapper方法缺点主要是特征通用性不强,当改变学习算法时,需要针对该学习算法重新进行特征选择。
1.递归特征消除法:递归消除特征法使用一个模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。Logistic回归的R实现详见本微信公众号历史文章:Logistic回归详解(三)——变量选择部分。
3.3 Embedded(集成法)
在集成法特征选择中,特征选择算法本身作为组成部分嵌入到学习算法里。最典型的即决策树算法。包括基于惩罚项的特征选择法和基于树模型的特征选择法。
1.基于惩罚项的特征选择法
2.基于树模型的特征选择法
4降维
4.1主成分分析PCA
4.2线性判别分析LDA
网友评论