一つのクラス内で、数字の0から9までに一つずつ対応したモデルを10個作り、その中から一番確率の高いモデルを選びたいのですが、以下のコードでエラーが発生してしまいます。
python
1class DigitRecognizer: 2 3 def train(self, train_data, train_labels): 4 for i in range(0,10): 5 rec[i] = sklearn.linear_model.LogisticRegression(C=20, penalty='l1') 6 rec[i].fit(train_data, train_labels[:,i]) # train_label[:,0]が数字0のラベル、train_label[;,1]が数字1のラベルに対応 7 8 9 def predict(self, test_data): 10 max = 0 11 for i in range(0,10): 12 if(max < rec[i].predict.proba(test_data)): 13 max = rec[i].predict.proba(test_data) 14 return max #一番確率の高かったものを返す。 15 16 17dr = DigitRecognizer() 18dr.train(train_data, train_labels) 19predictions = dr.predict(val_data)
エラーメッセージ
NameError Traceback (most recent call last)
<ipython-input-384-15ddc0cc4e38> in <module>
----> 1 self.dr.train(train_data, train_labels)
NameError: name 'rec' is not defined
もし、何か他にsklearnを使うやり方で効率の良い方法がありましたらご教示願います。
回答1件
あなたの回答
tips
プレビュー