目标:绘制功能的重要性
错误1: AttributeError:'DataFrame‘对象没有属性’DataFrame‘
错误2: KeyError:“source”
Where?:名称= [data.sourcei for i in indices] 或 names =[data‘’source‘== i in indices]
我不是蟒蛇和熊猫方面的专家,你能帮我纠正一下这段代码吗?另外,如果一个建议的语法,以避免类似的错误在未来?
代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv('data_with_anomalies.csv')
source = pd.DataFrame(data)
target = data['Anomaly']
source = source.drop(columns = ['Anomaly_Tag'])
model = ExtraTreesClassifier()
model.fit(source, target)
print(model.feature_importances_)
importances = model.feature_importances_
# Below chunk is referred from another question on stackoverflow
# Sort feature importances in descending order
indices = np.argsort(importances)[::-1]获取错误1和下面一行:
# Rearrange feature names so they match the sorted feature importances
names = [data.source[i] for i in indices]或如果我将其更改为下面,则会得到错误2:
names = [data['source'] == i for i in indices]
plt.figure()
plt.title("Feature Importance")
plt.bar(range(source.shape[1]), importances[indices])
plt.xticks(range(source.shape[1]), names, rotation=90)
plt.show()发布于 2020-03-01 21:36:05
尝试:
names = data.reindex(indices)
https://stackoverflow.com/questions/60479597
复制相似问题