在分析lr模型特征重要性之前,需要先明白lr模型是怎么回事儿。
lr模型公式是sigmoid(w1*x1+w2*x2+...+wn*xn),其中w1,w2,...,wn就是模型参数,x1,x2,...,xn是输入的特征值。
对于lr模型来说,特征可以分为两个粒度,一个是特征域,一个是特征值。举例来说,用lr模型判断一个人爱吃什么,输入两个特征,年龄,性别;年龄,性别就是特征域粒度,男,女,10岁,20岁就是特征值粒度。真正输入模型的是特征值粒度,会把特征one-hot化,男可以表征为[1,0],女可以表征为[0,1],年龄取值为[0,100),hash_bucket化为5个桶,[0,20),[20,40),[40,60),[60,80),[80,100),那么10岁表征为[1,0,0,0,0],20岁表征为[0,1,0,0,0]。那么假设此时输入模型的一条样本数据为男性10岁,那么输入模型的w1,w1,...,wn就为1,0,1,0,0,0,0。
分析特征重要性也可以从两个粒度去考虑。然后主要考虑的都是均值,绝对值均值,方差这几个值。然后还可以分为正样本,分为负样本去求这三个值来分析。
从特征值均值来看的话:
1.交叉特征管用,单独特征相对没那么管用。
2.单独特征中应当只有item的单独特征管用,代表大家都喜欢或者都不喜欢该物品。
从特征域来看:
1.均值参考性不那么高,绝对值均值高一些,但也不那么高。因为我们的常规思维都认为不喜欢和喜欢的均值应该是0,但实际情况可能不是,这跟我们参数的初始化,数据分布等因素密切相关,这个值可能是正值,也可能是负值。
2.方差参考性较高,方差较大,代表这个特征域对模型的影响比较大,代表这个特征域重要性比较高。