機械学習で作成したモデルに、実際のデータを当てはめて判定を行う方法
pythonとscikit-learnを用いてrandom forestを用いた機械学習モデルを作成しました。
2値分類のモデルですが、出来たモデルに、新規のデータを当てはめ、その判別(2値分類)を行いたいと考えております。
調べてみたところ、ML flowを用いれば、出来そうということが分かりましたが、例えばコードを少々追加して、新規データを当てはめて判別する方法というのはございますでしょうか。
ちなみに、leave-one-outによる交差検証と、SMOTEを用いたover-samplingを行っておりますが、SMOTEを用いなければ、判別を行いたいデータをcsvファイルの最後尾に入れ、cross_val_predictのpredict_probaを用いて、最後尾の結果を、その判別結果としてみるという、ややこしい方法で結果を見ております。
今回、SMOTEを用いたため、その方法が取れなくなってしまい、質問させて頂きました。
下記が、そのコードです。
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import LeaveOneOut
from imblearn.over_sampling import SMOTE
data = np.loadtxt('data.csv', delimiter=',',skiprows=1,dtype=float)
labels = data[:, 0:1].ravel()
features = data[:, 1:]
forest=RandomForestClassifier(n_estimators=100,random_state=7)
loo=LeaveOneOut()
sm = SMOTE(random_state=4)
X, Y = sm.fit_sample(features, labels)
scores = cross_val_score(forest, X, Y, cv=loo)
print('Average score: {:.3f}'.format(np.mean(scores)))