前提・実現したいこと
scikit-learnのKNeighborsClassifierクラスを使って分類問題に取り組んでいます。
そこで、ある教師データについてモデルをfitしたあとに、教師データを追加してもう一度fitしなければいけない場面に出くわしました。
しかし、もう一度fitする際には、既にfitした教師データもふくめたすべてのデータに関してfitしなおす方法しかわかりません。
このままではfitの処理が冗長なのではないかと感じました。
もうすでにfitされたモデルに対し、追加の教師データに関して効率よくfitする方法はあるのでしょうか。
特にエラーなどはないのですが、現状の私のコード例を以下に示しておきます。
該当のソースコード
python
1from sklearn.neighbors import KNeighborsClassifier 2import numpy as np 3 4model = KNeighborsClassifier(n_neighbors=3) 5 6train1 = np.random.randn(1000, 2) + np.array([1, 1]) # label: 0 7train2 = np.random.randn(1000, 2) + np.array([-1, -1]) # label: 1 8 9train = np.vstack((train1, train2)) # 2次元平面上の点のデータセット 10labels = [0 if i < 1000 else 1 for i in range(2000)] # ラベルデータ 11 12model.fit(train, labels) 13 14""" 15ここにmodelを使った推論など 16""" 17 18train3 = np.random.randn(1000, 2) + np.array([1, -1]) # label: 2 19 20new_train = np.vstack((train1, train2, train3)) # 教師データ追加 21new_labels = labels + [2 for i in range(1000)] # 教師データ追加 22 23model.fit(new_train, new_labels) # ここでまたtrain1とtrain2についてもfitされるので冗長? 24
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/11 06:56