python实现特征分析--特征重要性和相关系数

机器学习中特征尤为重要,现分享特征分析中计算特征重要性和相关系数的方法

一、特征重要性

可通过两种方式实现

1.机器学习方法自带的feature_importance

importances = xgb1.feature_importances_

2.将某一特征变成随机数,计算袋外误差,误差越高,其重要性越高

importance2 = []
acc = sklearn.metrics.r2_score(Y, xgb1.predict(X))
for i in range(X.shape[1]):
        X1 = X.copy()
        np.random.shuffle(X1[:, i])
        shuff_acc = sklearn.metrics.r2_score(Y, xgb1.predict(X1))
        importance2.append(round((acc-shuff_acc)/acc, 6))

二、相关性

虽然机器学习捕获的是因子之间的非线性关系,相关系数可能不能解释特征的重要性高低,但也可以提供一些分析信息

np.corrcoef(xxx, Y)[0,1]

你可能感兴趣的:(机器学习,人工智能)