目次:
- データをロードする方法
- <! - 1 - >
- <! - 3 - >
- 次のコードでは、最初の行はテストデータセットをモデルに送り、3行目は >>>> predicted = logClassifierという出力を表示します。 (0,0,2,2,1,0,0,2,2,1,2,0,2,2,2))
- 期待していましたが、予測に1つのエラーがありました。結果はサポートベクターマシン(SVM)モデルの結果と同じです。
ビデオ: 【4分でわかる】機械学習の3つの種類とは? 2024
データの分析のための最初の分類予測モデルを作成した後、それをより多くのモデルを作成することは、scikitでは本当に簡単な作業です。あるモデルから次のモデルへの唯一の実際の違いは、アルゴリズムからアルゴリズムにパラメータを調整する必要があるかもしれないということです。
データをロードする方法
このコードリストは、あなたのセッションにアイリスデータセットをロードします: >>>> from sklearn。データセットimport load_iris >>> iris = load_iris()
クラシファイアのインスタンスを作成する方法
<! - 1 - >
次の2行のコードは、分類子のインスタンスを作成します。最初の行はロジスティック回帰ライブラリをインポートします。 2行目は、ロジスティック回帰アルゴリズムのインスタンスを作成します。 >>>> from sklearn import linear_model >>> logClassifier = linear_modelです。 LogisticRegression(C = 1、random_state = 111)コンストラクタのパラメータ(正則化パラメータ)に注目してください。オーバーフィットを防ぐために、
正規化パラメータ
が使用されます。パラメータは厳密には必要ではありません(コンストラクタはデフォルトでC = 1になるため、コンストラクタはうまく動作しません)。 C = 150を使用してロジスティック回帰分類器を作成することにより、決定表面のより良いプロットが作成されます。以下の両方のプロットを見ることができます。 <!トレーニングデータの実行方法 ロジスティック回帰分類器のインスタンスを作成する前に、データセットをトレーニングセットとテストセットに分割する必要があります。次のコードは、このタスクを実行します: >>>> from sklearn import cross_validation >>> X_train、X_test、y_train、y_test = cross_validation。 train_test_split(アイリスデータ、アイリスターゲット、test_size = 0.10、random_state = 111)>>> logClassifier。 fit(X_train、y_train)
1行目は、データセットを2つに分割するライブラリをインポートします。<! - 3 - >
2行目は、データセットを2つの部分に分割し、今分割されたデータセットを2組の変数に割り当てるライブラリから関数を呼び出します。
3行目は、作成したロジスティック回帰クラシファイアのインスタンスを取得し、フィッティングメソッドを呼び出してトレーニングデータセットでモデルをトレーニングします。
クラシファイアを視覚化する方法
プロット上の決定表領域を見ると、チューニングが必要なように見えます。プロットの中央付近を見ると、中央の領域(Versicolor)に属するデータポイントの多くが右側(Virginica)の領域にあることがわかります。
この画像は、Cの値が150の決定表を示しています。視覚的に見た目がよく見えるので、ロジスティック回帰モデルにこの設定を使用するのが適切です。
テストデータを実行する方法
次のコードでは、最初の行はテストデータセットをモデルに送り、3行目は >>>> predicted = logClassifierという出力を表示します。 (0,0,2,2,1,0,0,2,2,1,2,0,2,2,2))
モデルをどのように評価するか?(X_test)>>> predictarray([0,0,2,2,1,0,0,2,2,1,2,0,2,2,2] 予測からの出力をy_test配列と相互参照することができます。その結果、すべてのテストデータポイントが正しく予測されていることがわかります。コードは次のとおりです:sklearnインポートメトリックから >>>> predictarray([0、0、2、2、1、0、0、2、2、1、2、0、2、2、2] )>>> y_testarray([0、0、2、2、1、0、0、2、2、1、2、0、2、2、2])>>>メトリック。 accuracy_score(y_test、predicted)1。 0#1. 0は100%の精度です>>> forecast == y_testarray([True、True、True、True、True、True、True、True、True、True、True、True、True、True]、dtype = bool)
パラメータC = 150のロジスティック回帰モデルはそれに比べてどのように違いますか?まあ、あなたは100%勝つことはできません。以下は、C = 150: >>>> logClassifier_2 = linear_modelのロジスティック分類器を作成して評価するためのコードです。 LogisticRegression(C = 150、random_state = 111)>>> logClassifier_2。フィット(X_train、y_train)>>> predict = logClassifier_2。 predict(X_test)>>>メトリック精度_スコア(y_test、予測)0。 93333333333333335 >>>メトリックconfusion_matrix(y_test、predicted)array([[5、0、0]、[0,2,0]、[0,1,7]])
期待していましたが、予測に1つのエラーがありました。結果はサポートベクターマシン(SVM)モデルの結果と同じです。
デフォルトパラメータを使用してロジスティック回帰分類モデルを作成して評価するコードの完全なリストです: >>>> from sklearn。データセットimport load_iris >>> sklearn import linear_model >>> sklearn import cross_validation >>> from sklearn import metrics >>> iris = load_iris()>>> X_train、X_test、y_train、y_test = cross_validation。 train_test_split(アイリスデータ、アイリスターゲット、test_size = 0.10、random_state = 111)>>> logClassifier = linear_model。 LogisticRegression(、random_state = 111)>>> logClassifier。フィット(X_train、y_train)>>> predict = logClassifier >>> y_testarray([0、0、0、0、2、2、0、0、2、2、1、2、0、2、2])>>> predictarray >>>メトリックを使用して、メトリックを計算します。 accuracy_score(y_test、predicted)1。 0#1. 0は100%の精度です>>> forecast == y_testarray([True、True、True、True、True、True、True、True、True、True、True、True、True、True]、dtype = bool)