python - 相关循环丢弃变量
问题描述
我想实现一个计算每对特征之间相关性的函数。当发现高相关性时,我想丢弃与目标变量相关性最低的特征,并且不要在循环中再次对其进行评估。
我尝试使用 iris 数据库作为示例和以下代码,但它没有从集合中删除高度相关的变量。
我还认为遍历两次列效率低下。谢谢你的帮助!
from sklearn import datasets
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
data1 = pd.DataFrame(data= np.c_[iris['data'], iris['target']],
columns= iris['feature_names'] + ['target'])
X = data1.drop('target', 1)
y = pd.DataFrame(data1['target'])
#Code to later implement function
threshold = 0.5
final_vars = set()
all_vars = X.columns.values.tolist()
for var in all_vars:
for var2 in all_vars:
if var != var2:
if abs(X[var].corr(X[var2])) <= threshold:
final_vars.add(var)
final_vars.add(var2)
else:
if abs(X[var].corr(y)) <= abs(X[var2].corr(y)):
all_vars.remove(var)
final_vars.add(var2)
else:
all_vars.remove(var2)
final_vars.add(var)
解决方案
推荐阅读
- python - 如何获得此功能以使测验起作用?
- neo4j - 是否有任何可以导入 Neo4j 的属性图模型的协作数据建模工具
- python-3.x - 如何计算从 csv.reader 导入的数组中的值?
- amazon-web-services - 使用 AWS api 网关,如何识别使用 Lambda 代理集成或 Lambda 非代理(自定义)集成配置了哪些 api
- html - 获取 td 标题 nodeJS
- reactjs - 让 redux-auth-wrapper 等到会话被检查
- ios - 我可以在没有 Apple Developer 帐户的情况下使用 TestFairy 共享 iOS 调试应用程序吗?
- pandas - 为了熊猫数据框应用几个条件
- maven - 依赖项未添加到原型中
- highcharts - 如何在 highstocks 中创建自定义工具提示