#62 Section 17 回帰(6) 予測

-- Views

February 09, 26

スライド概要

PyCaretのpredict_model関数を使い、選ばれた最良モデル(CatBoost)で予測を実践する流れをまとめます。

① テストデータによる最終チェック引数なしでpredict_model(best)を実行すると、setup時に取り分けておいたテストデータの予測結果と、MAEや $R^2$ などの評価指標が返されます。これでお作法通りの「ホールドアウト検証」が完了です。

② 予測結果の構造出力されるデータには、予測された数値を示すprediction_label列が新たに追加されます。回帰分析では、ここが予測された保険料などの具体的な推計値となります。

③ 実践:未知データへの予測正解(ターゲット変数)のない新データには、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 17 回帰(6) 予 測 Setup Compare Models Analyze Model データサイエンス チュートリアル Prediction Save Model 1

2.

4th STEP 機械学習 Section 17 回帰(6) 予測 予測結果の性能評価 さて、『Prediction(予測)』の最初のコードは下記のようなものです。 ★ 右側のpredict_model関数は、通常、『predict_model(モデル名, data=データ名)』の ような引数を指定しますが、setup()で分割したテストデータに対して予測した結果を返してくれます。 引数『data=データ名』が無い場合は、指定したモデルの性能評価が出力されます。 『holdout_pred』は、predict_model() の実行結果が格納される変数です。 ですから、★のようにコードを書く、下記のように指定したモデルの性能評価が出力されます。 ※ MAE、MSE、RMSE、R2、RMSLE、MAPEに関しては、『#59 Section14 回帰(3)モデルの評価・比較』 を参照してください。 データサイエンス チュートリアル 2

3.

4th STEP 機械学習 Section 17 回帰(6) 予測 予測結果の出力 また、『holdout_pred』は、予測結果が格納されたデータフレームを保持していますので、下記のコードのように 『holdout_pred.head()』とすると、指定したモデルをテストデータに当てはめた予測結果が出力されます。元にデータに 『prediction_label』という列が追加され、そこに『保険料(charges)』の予測結果が表示されています。 これで、テストデータの予測ができました。 データサイエンス チュートリアル 3

4.

4th STEP 機械学習 Section 17 回帰(6) 予測 新たなデータで予測(1) 同じコードは、未知のデータセットのラベル予測にも使えます。元のデータのコピーを作成し、列『charges』を削除し、新たな データ『new_data』を作成します。 データサイエンス チュートリアル 4

5.

4th STEP 機械学習 Section 17 回帰(6) 予測 新たなデータで予測(2) 次は、この『new_data』を下記に当てはめて、 『new_data』の予測をしています。 predict_model(モデル名, data=データ名) スライド2と異なり、 『data=new_data』となっていますので、 『new_data』に対して予測した結果を返してくれます。出 力は、元にデータに『prediction_label』という列が追加され、そこに『保険料(charges)』の予測結果が表示されてい ます。 データサイエンス チュートリアル 5

6.

4th STEP 機械学習 Section 17 回帰(6) 予測 新たなデータで予測(3) 『predictions』がどの程度予測できているかを見てみましょう。元データの最初の5行は、『data.head()』で出力されます。 indexは操作していませんので、行の順番は変わっていないはずです。 比較するのは、 『data』の『charges』と『predictions』 の『prediction_label』です。 結構、バラツキがありますね。データサイエンティストは、これをチューニングしていくわけです。 元データ data 予測データ predictions データサイエンス チュートリアル 6

7.

4th STEP 機械学習 Section 17 回帰(6) 予測 このSectionでは、既存のデータから新しいデータを作成し、予測してみ ました。 データセット『insurance』は、個人の特性に基づいて、米国の医療保険 制度における年間医療費の個人負担額(charges)を予測するため に使用されるものですが、医療費の個人負担額を、年齢、性別、BMI、 子供の数、喫煙者かどうか、地域情報だけで予測するのは難しいようで すね・・・ データサイエンス チュートリアル 7