根据特征重要性进行特征选择

对钓鱼网页特征进行提取 使用随机森林进行分类 分类结果不够准确  前几天看书看到了根据特征重要性进行特征筛选  今天拿来试一下

原本选择了11个特征进行了特征提取  

feature_names = ['img_num', 'form_num', 'input_num', 'password_input',
'a_num', 'a_emp_num', 'css_num', 'js_num', 'a_self_num',
'url_len', 'url_digit']

对随机森林分类器进行训练 得到模型预测的准确率如下图所示


因为使用交叉验证的方式 每次结果的准确率都有所差别 但相差不大

然后利用matplotlib 对特征重要性进行了可视化处理

feature_importance = clf.feature_importances_
def plot_feature_importances(feature_importances, title, feature_names):
feature_importances = 100 * (feature_importances / max(feature_importances))
#按特征重要性进行排序
index_sorted = np.flipud(np.argsort(feature_importances))
pos = np.arange(index_sorted.shape[0]) + 0.8

plt.figure()
plt.bar(pos, feature_importances[index_sorted], align = 'center')
plt.xticks(pos, np.array(feature_names)[index_sorted])
plt.ylabel('Relative Importance')
plt.title(title)
plt.show()

plot_feature_importances(feature_importance, 'Feature importances', feature_names)


选取其中排名前9位的特征 重新组成特征向量 对模型进行训练 得到的结果准确度提高



评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值