質問: classifier.predict(test.data) # 結果表示 print("Accuracy:\n%s" % metrics.accuracy_score(test.target, predicted)) ``` ここまでがソースです。 ### 試したこと 現状、書き写しと実行でするまでの知識しかありません。 一旦、別の初心者ほんに行って帰ってきたところです。 ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報ハッシュタグ
回答: > > Traceback (most recent call last): > > File "handsign/trial_handsign_SVM.py", line 50, in > > train_path = argvs[1] > > IndexError: list index out of range > > > エラーの言わんとするところは、`train_path = argvs[1]`をしたときに、リストインデックス(この場合1)がリスト外の数値だった、ということです。 Pythonでは、他の言語と同じように、リストのインデックスは0,1,2...とゼロから数え始めます。つまり、この場合、インデックス1の要素がないということは、2つ目の要素が空っぽだったよ、という意味ですね。 ここでソースを見ると、 ``` if name == 'main': argvs = sys.argv train_path = argvs[1] test_path = argvs[2] ``` `train_path = argvs[1]`の中身は`argvs`の[1]つまり、argvsの2つ目の要素、ということです。もう一つ戻ると、`argvs = sys.argv`とあるので、`sys.argv`の2つ目の要素がないということですね。 `sys.argv`が何かというと、**pythonの引数を拾う関数**です。 もうわかりましたね。 `python trial_handsign_SVM.py `の引数がちゃんと指定されていないというのが最も有力です。 コマンドプロンプトで、`python trial_handsign_SVM.py c:\learn\ c:\test\`とかこんな感じで引数を指定しないと、引数が足りないよエラーが起きてしまいます。