前提・実現したいこと
決定木分析のために下記URLのページから以下のコードを実行したところ、エラーとなりました。
https://algorithm.joho.info/machine-learning/python-scikit-learn-decision-tree/
入力したコード
import pandas as pd
from sklearn import tree
def main():
data = pd.read_csv("data.csv", sep=",")
variables = ['x1', 'x2']
clf = tree.DecisionTreeClassifier()
clf = clf.fit(data[variables], data['x3'])
with open('graph.dot', 'w') as f:
f = tree.export_graphviz(clf, out_file=f)
if name == "main":
main()
発生している問題・エラーメッセージ
KeyError Traceback (most recent call last) <ipython-input-56-994f00b2b08b> in <module>() 21 22 if __name__ == "__main__": ---> 23 main() <ipython-input-56-994f00b2b08b> in main() 14 15 # 分類器にサンプルデータを入れて学習(目的変数はx) ---> 16 clf = clf.fit(data[variables], data['x3']) 17 18 # 学習結果を出力 ~\Anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key) 2677 if isinstance(key, (Series, np.ndarray, Index, list)): 2678 # either boolean or fancy integer index -> 2679 return self._getitem_array(key) 2680 elif isinstance(key, DataFrame): 2681 return self._getitem_frame(key) ~\Anaconda3\lib\site-packages\pandas\core\frame.py in _getitem_array(self, key) 2721 return self._take(indexer, axis=0) 2722 else: -> 2723 indexer = self.loc._convert_to_indexer(key, axis=1) 2724 return self._take(indexer, axis=1) 2725 ~\Anaconda3\lib\site-packages\pandas\core\indexing.py in _convert_to_indexer(self, obj, axis, is_setter) 1325 if mask.any(): 1326 raise KeyError('{mask} not in index' -> 1327 .format(mask=objarr[mask])) 1328 1329 return com._values_from_object(indexer) KeyError: "['x1' 'x2'] not in index"
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
csvの中身です
x1,x2,x3
45,17.5,30
38,17.0,25
41,18.5,20
34,18.5,30
59,16.0,45
47,19.0,35
35,19.5,25
43,16.0,35
54,18.0,35
52,19.0,40
