問題の1説明
彼女は非常に興味深い見つけアイリス愛好家の植物品種を仮定します。彼女は、それぞれの花アイリス一部の測定値を収集しました。
- 長さおよび幅ならびに花弁の萼の長さ及び幅は、全ての単位はcmで測定されています。
彼らは植物の専門家のsetosa、versicolorのvirginicaの1または3種類に属するものとして同定されている前に、彼女はまた、測定データの虹彩の数、花を持っていました。これらの測定のために、彼女はそれぞれの花の種アイリス所属決定することができます。
私たちは、植物学の愛好家は、野生で3つのアイリスに遭遇することを想定しています。私たちの目標は、機械学習モデルを構築することです、
我々は新しいアイリスの品種を予測できるようにするために、アイリス測定データのこれらの既知の品種から学ぶことができます
。これがあるので、我々は、アイリス測定データの種類を知っていたので
、教師付き学習
問題。この問題では、我々は、オプションの数に1(アイリス種)を予測します。これは、問題の分類(classifification)の例です。可能な出力(虹彩のさまざまな品種)と呼ばれるカテゴリ(クラス)。これは、三分類問題であるように、各データ・セット・アイリスの花は、の3つのカテゴリに分類します。
2、テストコード
1つの #は/ usr / binに/ envをパイソン! 2 #- * -コーディング:UTF-8 - * - 3 #@file:Iris.py 4 #@Author:赵路仓 5 #@Date:2020年2月26日 6 #@ DESC: 7 #@Contact:[email protected] 8 9 インポートNPとしてnumpyの 10 インポートPLTとしてmatplotlib.pyplot 11 インポートPDとしてパンダ 12 インポートmglearn 13 インポートPDとしてパンダ 14 から sklearn.datasetsがインポート load_iris #古典における機械学習と統計データの集合であるイリス(アイリス)データセット、 15 から sklearn.model_selection インポートtrain_test_split 16 17 iris_dataset = load_iris() #1 load_iris虹彩バンチオブジェクトを返した辞書のオブジェクトは非常になっています同様に、キー値が含まれている 18が 印刷(" :\ N- {}キーまたはiris_dataset " .format(iris_dataset.keys())) #の印刷 。19 プリント(iris_dataset [ ' DESCR ' ] [193] + " \ N-。 ... ") #のデータセットの簡単な説明に対応するDESCRキー値。キー値に対応するtarget_namesは、私たちが花の品種を予測したい含む文字列の配列である 20 印刷("{}:ターゲット名" .format(iris_dataset [ ' target_names ' ])) #花の種類名の三種類 21が 印刷(" 機能名:{} 」 .format(iris_dataset [ ' FEATURE_NAMEに' ])) #花特性の3種類幅花弁の萼長の長さおよび幅 22が 印刷(「データの種類:{} 」 .format(タイプ(iris_dataset [ 「データ」 ]))) #花に対応するデータアレイの各列の、列は各花を表します4回の測定データ 23は、 印刷(「:{}データの形状」 .format(iris_dataset [' データ' ] .shape)) #のアレイは、測定データの150個の異なる花含ま 24 プリント(" データの最初の5行:\ N- {} " .format(iris_dataset [ ' データ' ] [:5])) #フロント花5つのデータ 25 を印刷(「ターゲットのタイプ:{} 」 .format(タイプ(iris_dataset [ 「標的」 ]))) #は、一次元アレイ、各花に対応するデータで ある26 プリント(" ターゲットの形状:{} " .format(iris_dataset [ ' 標的' ]。 形状)) # 27 プリント(" ターゲット:\ N- {} " .format(iris_dataset [ ' 標的' ])) #の三つのカテゴリーを表す整数種を3つの012 28 29。X_train、X_test、Y_trainをandroid.permission.FACTOR = Train_test_split(iris_dataset 【' データ' ]、iris_dataset [ ' 標的' ]、random_state = 0) 30 プリント(" X_train形状:{} " .format(X_train.shape)) 31が プリント(" Y_train形状:{} " .format(Y_train。形状)) 32 印刷(" X_test形状:{} " .format(X_test.shape)) 33は、 プリント("android.permission.FACTOR形状:{} " .format(Y_test.shape)) 34れる 35の #1 のデータはX_trainデータフレームを使用して作成した 36 #のiris_dataset.feature_namesを使用して文字をマークデータ 37 iris_dataframe = pd.DataFrame(X_train、列= iris_dataset.feature_names) #横軸と横軸のタイトル 38 #の使用はy_trianによって着色散布図行列、作成データフレーム 39 GRR = pd.plotting.scatter_matrix(iris_dataframeをY_train = C、figsize =(15、15)、マーカー= ' O '、hist_kwds = { ' ビン':20}、S = 60、アルファ= 0.8、CMAP = mglearn.cm3) 40 plt.show()
注:花のデータ配列を表すの各行は、4つの列は、それぞれの花、150種類の花の総数の測定データを表します。ターゲットが一次元アレイであり、各花代表データは、その中に、0,1,2 3×3つの異なる花の種の整数を表します。
3、対策の成功:訓練データとテストデータ
モデルは試合が100%でなければならないかどうかをテストするために使用されるデータモデルを構築するようになっているので、まず、このモデルは、モデルを構築するために、データを評価するために使用することはできません。そのため、モデルをテストするために、新しいデータを使用します。
機械学習モデルを構築するために使用されるデータの一部、と呼ばれるトレーニング
トレーニングデータ(トレーニングデータ)
や
トレーニングセット(トレーニングSET)
、モデルの機械学習を構築するために使用されるデータ。残りのデータが呼び出され、モデルの性能を評価するために使用される
テストデータ(テストデータ)
、
テストセット(TESTSET - )
または
休暇セット(SETのHOLD-OUT)
。train_test_split scikit学習データセットと分割を混乱させる可能性のある関数を。75ラベルの%及びトレーニングセットとして対応するデータライン、及びテスト・データ・セットとしてタブの25%は、75%および25%が、状況に応じて変更することができます。
要するに、トレーニングは、データモデルを構築することで、テストデータは、成功のモデルかどうかをテストすることです。Y出力で表される4つの花のデータは、それぞれ、Xの入力で表されます。
擬似乱数発生器を用いてtrain_test_split関数はrandom_stateパラメータを指定し、乱数発生器のシードを使用して、データセットを破壊します。関数の出力が固定されているように、このラインの出力は常に同じです。
コードの一部は、次のように:
X_train、X_test、Y_train、Y_test = train_test_split(iris_dataset [ ' データ' ]、iris_dataset [ ' 標的' ]、random_state = 0) プリント(" X_train形状:{} " .format(X_train.shape)) プリント(「Y_train形状:{} " .format(Y_train.shape)) プリント(" X_test形状:{} " .format(X_test.shape)) プリント(" Y_test形状:{} 」 .format(Y_test.shape))
4、観測
視覚的レンダリング方法は、散布(散布図)です。別の特徴に特徴的なX軸、Y軸とスキャッタグラムデータは、データ点の各々は、図に点としてプロット。残念ながら、コンピュータ画面のみ2次元ので、我々は2つのだけの特徴(おそらく3)を描くことができます。さらに詳しい情報3よりも、このように設定されたハード特性データに対してプロットしました。この問題を解決する1つの方法は、散布図行列(ペアプロット)を描画することです。
コードの一部は、次のように:
1 #データを使用しては、データフレーム作成X_train 2 #の使用iris_dataset.feature_names文字データマークを 3。 iris_dataframe = pd.DataFrame(X_train、列= iris_dataset.feature_names) #横軸と横軸の名前 4 #利用スキャッタグラムは、データフレームを作成しマトリックス、y_trian着色による 。5 GRR = pd.plotting.scatter_matrix(iris_dataframe、C = Y_train、figsize =(15、15)、マーカー= ' O '、hist_kwds = { ' ビン':} 20、S = 60であり、=アルファ0.8、CMapの= mglearn.cm3) 。6 plt.show()
データ結果を示します: