「pythonと実例で学ぶ機械学習 識別・予測・異常検知」と言う本で勉強している初心者です。
"ナイーブベイズ分類器による識別とROC曲線による評価"と言う章でコードをjupyter notebookに本の記載の通りに書きましたがラベルエンコーダの設定の部分でエラーがでて先に進みません。エラー内容は'NominalAttribute' object is not subscriptable’と出ています。本の正誤表もwebにもなく困っています。教えていただければ幸いです。
Anaconda経由でjupyter notebookを使用しています。
Mac OS Catalinaでpython3.7です。
python
1 2import numpy as np 3from sklearn.preprocessing import LabelEncoder, OneHotEncoder 4from scipy.io import arff 5from sklearn.model_selection import LeaveOneOut 6from sklearn.metrics import roc_curve,auc,roc_auc_score 7import matplotlib.pyplot as plt 8from sklearn.naive_bayes import BernoulliNB 9 10f = open("weather.nominal.arff", "r", encoding="utf-8") 11data, meta = arff.loadarff(f) 12 13 14le = [LabelEncoder(), LabelEncoder(), LabelEncoder(),LabelEncoder(), LabelEncoder()] 15for idx, attr in enumerate(meta): 16 le[idx].fit(list(meta._attributes[attr][1])) 17 18 19TypeError Traceback (most recent call last) 20<ipython-input-3-89b9c47cd3f6> in <module> 21 1 le = [LabelEncoder(), LabelEncoder(), LabelEncoder(),LabelEncoder(), LabelEncoder()] 22 2 for idx, attr in enumerate(meta): 23----> 3 le[idx].fit(list(meta._attributes[attr][1])) 24 4 25 5 26 27TypeError: 'NominalAttribute' object is not subscriptable 28
回答1件
あなたの回答
tips
プレビュー