ビデオ: 人工知能と機械学習 2024
予測分析のためにロードされたデータをサポートベクターマシン(SVM)分類器に送る前に、完全なデータセットをトレーニングセットに分割し、テストセット。
幸いにも、scikit-learnは完全なデータセットを簡単に分割するのに役立つ関数を実装しています。 train_test_split関数は、入力として単一のデータセットとパーセンテージ値を取ります。パーセンテージ値は、テストセットのサイズを決定するために使用されます。この関数は、テストデータセット(サイズが指定されている)とトレーニングデータセット(残りのデータを使用する)の2つのデータセットを返します。
<!典型的には、トレーニングセットとして使用するためにデータの約70〜80%をとり、残りのデータをテストセットとして使用することができます。しかし、Irisデータセットは非常に小さく(わずか150インスタンス)、モデルのトレーニングに90%、テストモデルとして10%を使用して、予測モデルのパフォーマンスを確認できます。データセットを分割するには、次のコードを入力します。sklearn import cross_validation >>> X_train、X_test、y_train、y_test = cross_validationから >>>>あなたのセッションにクロスバリデーションライブラリをインポートします。 2行目は、サンプルの10%からテストセットを作成します。
<! - 2 - >
x_trainには135の観測とその特徴が含まれます。
y_trainは、135の観測と同じ順序で135のラベルを含みます。
x_testには、15(または10%)の観測とその特徴が含まれます。y_testは、15個の観測と同じ順序で15個のラベルを含みます。
次のコードは、分割が期待どおりであることを確認します。
<! - 3 - > >>>> X_train。 shape(135、4)>>> y_train。 shape(135、)>>> X_test。形状(15,4)>>> y_test。 shape(15、)
出力から、トレーニングセットに4つのフィーチャと135のラベルを持つ135の観測があることがわかります。テストセットは、4つの特徴と15のラベルを有する15の観測を有する。
予測分析の分野の初心者の多くは、データセットを分割することを忘れています。これは、プロジェクトに深刻な設計上の欠陥をもたらします。完全な150のインスタンスがトレーニングデータとしてマシンにロードされた場合、モデルをテストするための見えないデータは残されません。次に、予測モデルをテストするためにいくつかのトレーニングインスタンスを再利用することに頼る必要があります。このような状況では、モデルを訓練するのと同じ正確なデータを使用しているため、モデルは常に正しいクラスを予測することがわかります。このモデルはすでに以前からこのパターンを見てきました。見た目を繰り返すだけで問題はありません。作業予測モデルは、まだ見ていないデータの予測を行う必要があります。
SVMクラシファイア、トレーニングデータセット、およびテストデータセットのインスタンスがある場合、トレーニングデータを使用してモデルをトレーニングする準備が整いました。インタプリタに次のコードを入力すると、 >>>> svmClassifierというコードが実行されます。 fit(X_train、y_train)このコード行は、予測を行うための作業モデルを作成します。具体的には、新しいモデル化されていないデータセットが属するアイリスのクラスを予測する予測モデルです。 svmClassifierインスタンスには、さまざまなことを行うために呼び出すことができるいくつかのメソッドがあります。
たとえば、fitメソッドを呼び出した後、最も有用な呼び出し方法はpredictメソッドです。それが新しいデータを供給する方法です。その代わりに、それは結果を予測する。