#python #scikit-learn
#python #scikit-learn
Вопрос:
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
diabetes = datasets.load_diabetes()
X = diabetes.data
y = diabetes.target
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=0)
mms = MinMaxScaler()
X_train_norm = mms.fit_transform(X_train)
X_test_norm = mms.transform(X_test)
stdsc = StandardScaler()
X_train_std = stdsc.fit_transform(X_train)
X_test_std = stdsc.transform(X_test)
LogisticRegression(penalty='l1')
lr = LogisticRegression(penalty='l1', C=1.0, multi_class='auto', solver='liblinear')
lr.fit(X_train_std, y_train)
print('Training accuracy:', lr.score(X_train_std, y_train))
print('Test accuracy:', lr.score(X_test_std, y_test))
from sklearn.ensemble import RandomForestClassifier
forest = RandomForestClassifier(n_estimators=500, random_state=1)
forest.fit(X_train, y_train)
importances = forest.feature_importances_
print(importances)
feature_labels = diabetes.columns[0:]
print(feature_labels)
Это ошибка, которую я получаю. Кто-нибудь может помочь?
KeyError Traceback (most recent call last)
~/opt/anaconda3/lib/python3.8/site-packages/sklearn/utils/__init__.py in __getattr__(self, key)
95 try:
---> 96 return self[key]
97 except KeyError:
KeyError: 'columns'
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
<ipython-input-163-74a2bb3a96b9> in <module>
9 print(importances)
10
---> 11 feature_labels = diabetes.columns[0:]
12 print(feature_labels)
13
~/opt/anaconda3/lib/python3.8/site-packages/sklearn/utils/__init__.py in __getattr__(self, key)
96 return self[key]
97 except KeyError:
---> 98 raise AttributeError(key)
99
100 def __setstate__(self, state):
AttributeError: columns
Ответ №1:
вы можете распечатать ключи столбцов, например, чем печатать любые столбцы по его ключу
keys= diabetes.keys()
print(keys)
feature_labels = diabetes["data"]
print(feature_labels)
или, если вы хотите перебирать ключи, вы можете сделать что-то вроде этого
for key in diabetes.keys():
print(key)
feature_labels = diabetes[key ]
print(feature_labels)
Ответ №2:
Если вы хотите получить функции, он не использует столбец. Вы уже определили это выше
X = diabetes.data
и, насколько я знаю, встроенный набор данных не содержит заголовка каждого столбца. вы должны определить это самостоятельно. например, с помощью библиотеки pandas