同じ分類子の予測を比較したいと思います。 例としてとして、私はLinear Discriminant Analysisクラシファイアを選びました。Sklearnでクロスバリデーション(Kfold)を使ってラベルを予測する方法
したがって、私はsklearnのドキュメントを調べました。クロスバリデーション(例えば Kfold)の助けを借りて、ラベルの予測を:私はそれらを一緒にリンクしたい Link 1 Link 2
: は、私はこれらの2つのウェブサイトを見つけました。
しかし、私は自分のコードを動作させることはできません。
from sklearn.model_selection import cross_val_predict, KFold
from sklearn.model_selection import train_test_split
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
X = np.array([[1, 2], [2, 4], [3, 2], [4, 4], [5, 2], [6, 4], [7, 2], [8, 4]])
Y = np.array([1, 2, 3, 4, 5, 6, 7, 8])
Xtrain,Xtest,Ytrain,Ytest = train_test_split(X,Y,train_size=0.5,random_state=1)
clf = LinearDiscriminantAnalysis()
clf.fit(Xtrain, Ytrain)
LinearDiscriminantAnalysis(n_components=None, priors=None, shrinkage='auto', solver='lsqr', store_covariance=False, tol=0.001)
# without cross-valdidation
prediction = clf.predict(Xtest)
# with cross-valdidation
cv = KFold(n_splits=2)
prediction_cv = cross_val_predict(clf, X, Y, cv=cv)
うまくいけば、誰かが私を助けることができます。
EDIT:
私はより多くを説明する必要があると思います。 現在、私は232のデータポイント(X)を持っています。各点は16の値で構成され、特定のクラスに割り当てられます。 Kfoldまたはのように、クロスバリデーションを使用しているときに、見通しを改善することができます(目に見えないデータポイントの分類ミスを減らすことができます)。
cross_val_predict(clf, X, Y, cv=cv)
という行では、PythonはKfoldのクロス検証を行います。
今、私は新しいデータポイント(X_new
)を取得したとしましょう。どのように分類できますか?
さて、あなたは今まで正しいと 'prediction'と' prediction_cv'を持っています。どのようにそれらを比較したいですか?あなたがしたいことは、詳細に記述してください。 –
コードは今まで動作しません。 'predict'と' prediction_cv'の結果は得られません。 Pythonは私のコードの中で何か好きではなく、私は何が分かりません。 背景:Pythonが予測を計算するとすぐに、 'predictions'と' Ytest'(真のラベル/クラス)間の間違いを数えたいと思います。 –
あなたが提供したデータの例については、下記の答えをご覧ください。 –