#53 Section9 分類(6)予測

>100 Views

February 06, 26

スライド概要

compare_modelsで選出された最良のモデル(例:ロジスティック回帰)を用い、実際に予測を行うフェーズを解説します。

1. テストデータでの検証
まずはpredict_model関数を使用し、学習に使っていないテストデータ(ホールドアウトデータ)で予測を試します。算出された正解率やF1スコアを訓練時と比較し、性能が大きく低下せず維持されているかを確認します。

2. 予測結果の読み方
予測を実行したデータフレームには、末尾に以下の2つの重要な列が追加されます。

prediction_label: 予測されたクラス(0:陰性、1:陽性)。

prediction_score: そのクラスに分類される確率(確信度)。

3. 未知データへの適用
実務では、正解(目的変数)を含まない新しいデータに対して予測を行います。元のデータからターゲット列を削除したデータ(new_data)を用意し、predict_model(best, data=new_data)と記述するだけで、学習時と同じフローで簡単にラベルと確率を付与した結果が得られます。

profile-image

すべてのビジネスパーソンが意思決定プロセスにデータを活用する思考を身につけるため、まずは、データサイエンスの分析を体験していきましょう。SECIモデルの最初の段階、共同化(Socialization)からはじめていきます。 下記のブログで、ここにアップしたスライド、動画を随時、公開中です。 【ブログ】https://tutorial4datascience.blogspot.com/ 【Youtubeチャンネル】https://www.youtube.com/@DataScience_for_everyone 【Kindle】そして、このブログをまとめて書籍にしました!   https://amzn.to/4ryVppn   https://amzn.to/4pGgFb1

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

4th STEP 機械学習 前処理 Section 9 分 類(6) 予 測 Setup Compare Models Analyze Model データサイエンス チュートリアル Prediction Save Model 1

2.

4th STEP 機械学習 Section8 分類(6)予測 予測結果の性能評価 下記のコードは、setup()で分割したテストデータ(231行×9列/Transformed test set shape)に対して予測し た結果を返してくれます。 holdout_pred = predict_model(モデル名) 宣言した『holdout_pred』の holdoutは、モデルを評価する データを作るためにデータを分割 することを意味しています。別に 何と宣言してもいいのですが、わ かりやすいように 『holdout_pred』としておきま しょう。 『compare_models』関数を使って、モデルを 評価した際の評価指標一覧と比べて、どうでしょ うか?正解率(Accuracy)とF1-score (F1)は、やや下がっていますが、数値が高いまま 維持されています。 データサイエンス チュートリアル 2

3.

4th STEP 機械学習 Section8 分類(6)予測 予測結果の出力 予測結果の性能評価をした「holdout_pred」の最初の5行を見てみましょう。 出力を見ると、テストデータに予測ラベル(prediction_label) と予測確率(prediction_score)が付与されていますね。 予測ラベル(prediction_label) →予測されたインスタンスのクラス。「0」が糖尿病陰性、 「1」が糖尿病陽性でしたね。 予測確率(prediction_score) →インスタンスが予測されたクラスである確率 データサイエンス チュートリアル 3

4.

4th STEP 機械学習 Section8 分類(6)予測 新たなデータで予測(1) 最も性能の良かったモデル「best」(すなわち、 lr:Logistic Regression )をget_data(‘diabetes‘)で読込んだ 「data」(訓練データ+テストデータ)すべてにあてはめて性能を確認してみます。 まずは、 「data」 の列名「Class variable」を削除し、 モデルをあてはめるデータを作成します。 「data」をコピーして、列名 「Class variable」を削除し、「new data」と宣言します。次に「new data」の最初の5行を確認してみます。 データサイエンス チュートリアル 4

5.

4th STEP 機械学習 Section8 分類(6)予測 新たなデータで予測(2) 「new_data」で予測をしてみましょう! predict_model(モデル名, data = データ名) 予測した結果を「predictions」と宣言し、最初の5行を見てみます。 データサイエンス チュートリアル 5

6.

4th STEP 機械学習 Section8 分類(6)予測 新たなデータで予測(3) 出力は、下記のようになります。 テストデータにおける予測結果と同じように予測ラベルと予測確率が付与されていますね。 予測ラベル(prediction_label) →予測されたインスタンスのクラス。「0」が糖尿病陰性、 「1」が糖尿病陽性でしたね。 データサイエンス チュートリアル 予測確率(prediction_score) →インスタンスが予測されたクラスである確率 6

7.

4th STEP 機械学習 Section8 分類(6)予測 既存のデータから新しいデータを作成し、予測してみました。 実際には、新しい患者さんのデータを、このモデル『best』に当てはめて、 糖尿病か否かを予測することになります。 データサイエンス チュートリアル 7