Цель: Чтобы отобразить важность функции
Ошибка 1: AttributeError: у объекта 'DataFrame' нет атрибута 'source'
Ошибка 2: KeyError: 'source'
Где?: names = [data.source [i] для i в индексах] ИЛИ names = [data ['source'] == i для i в индексах]
Я не эксперт по python и pandas, не могли бы вы помочь мне исправить этот кусок кода? А также, если совет по синтаксису, чтобы избежать подобных ошибок в будущем?
Код:
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()