投稿

Translate

YouTubeコース(無料版)をはじめました!

イメージ
このブログも、コンテンツが多くなり、動画を見つけにくいとの意見がありました。 そこで、YouTubeコースを始めました。 YouTubeは、デフォルトで作成日順に表示されますので、どの順番で動画を見ればいいか迷ってしまいます。 YouTubeコースは、関連の動画が視聴する順番で並んでいます。また、そのコースのどこまで視聴したかも記憶してくれていますので、すぐに次の新しいものから視聴できますのでストレスフリーですね(途中でも大丈夫)。 サイドバーにも「YouTube コース」という場所を作っておきましたので、それぞれをはじめから順番に視聴したい方はご利用ください。 ① 基礎編 1st Step ビッグデータの読み込みとデータの確認 https://www.youtube.com/playlist?list=PLb2oxjBcK2wyv6k0IesxrpIX6TFb9Gyyj ② 基礎編 2nd Step 集計とグラフ描画 https://www.youtube.com/playlist?list=PLb2oxjBcK2wwWGxV4cvYikqCZwZ9P_lma ③ 応用編 Webスクレイピング https://www.youtube.com/playlist?list=PLb2oxjBcK2wwk7_yyuosj4Q5xicd1ypAu また、宣伝になりますが、①~②のコースは、それぞれ下記のオフィシャルテキストに対応しています。Amazonで購入可能ですので、よろしければクリック!  ① 基礎編 1st Step ビッグデータの読み込みとデータの確認 ⇒  オフィシャルテキスト1 ② 基礎編 2nd Step 集計とグラフ描画 ⇒  オフィシャルテキスト2

#64 Section 19 回帰(8)まとめ

イメージ
さて、Pycaretでの回帰はいかがでしたか? #57 Section 12~#63 Section 18を振り返ってみましょう! 出力された評価結果、分析結果を詳しく説明しましたが、最低限、下記のコードを書けば、機械学習の『回帰』で分析することができます。 新たなデータを作成してそれを予測するコードを加えても全部で19行! ↓ 下記のスライドは、クリックすると大きくなります。 コードを書くのが億劫だと思っている方でも、どんどん出力が出ますので、さまざまな種類の機械学習を体験していきましょう。 次回からは、クラスタリング(Clustering)を体験していきます!  

#63 Section 18 回帰(7)モデルの保存

イメージ
さて、回帰も大詰めとなってきました。 1.モデルの保存 さて、予測したモデルを、save_model関数を使用して、今までの分析の流れを後で使用するために保存していきます。  使うコードは、 save_model(選択したモデルの名前, '保存するモデルの名前') 今回は、「my_first_pipeline」という名前で保存します。 「my_first_pipeline」は、現在の作業ディレクトリに、モデルのIDに *.pkl の拡張子が付いたファイル(*pickle形式)として保存されます。これは、後でいつでも利用することができます。 * pickle形式 :Pythonのメモリ上にあるデータ構造(例えば、リスト、辞書、クラスのインスタンス、そしてPyCaretの学習済みモデルなど)を、ファイルに書き込んで保存できる形式のことです。そして、保存したファイルから元のPythonオブジェクトを復元できます。 pickle形式のファイルは、path引数で指定した場所、または今回のようにpath引数を省略した場合は現在の作業ディレクトリに保存されます。ただし、Googleドライブの検索エンジンでは、ファイルの内容をテキストとして解析することが難しく、 キーワードで検索することができません 。 2.モデルの保存 出力 save_model関数の主なアウトプットは、モデルだけでなく、データの前処理方法全体が一つのパイプラインとして保存されたこと、そしてそのパイプラインに含まれる個々の処理ステップの詳細と、最終的な学習済みモデルの種類とハイパーパラメータ、そして保存されたファイルの名前を示しています。 この情報があれば、 保存されたパイプラインがどのような処理を行い、どのようなモデルを含んでいるか を後で正確に把握することができます(確認している人は少ないですが・・・)。 滅多に使わないですが、今までの作業を振り返る意味で、出力内容を確認していきましょう。 下記の2枚のスライドを見てみましょう。 3.モデルの再利用 save_model関数を使ったモデル(前処理方法などを含む)を呼び出す(ロードする)ためには、 load_model(‘保存したモデル名‘) を使います。ここでは、読み込んだモデルを「loaded_best_pipeline」と名付け直しています...

#62 Section 17 回帰(6) 予測

イメージ
今回は、compare_models関数で求めた性能が良かったモデル(catboost/CatBoost Regressor)で、新たにデータを作成して、予測をしてみましょう。 1.予測結果の性能評価 まず、チュートリアルの最初のコードをみてみましょう。『holdout_pred = predict_model(best)』となっています。 右側のpredict_model関数は、通常、『 predict_model(モデル名, data=データ名) 』のような引数を指定しますが、setup()で分割した テストデータ に対して 予測した結果 を返してくれます。 引数『data=データ名』が無い場合は、指定した モデルの性能評価 が出力されます。 『holdout_pred』は、predict_model関数の実行結果が格納される変数です。何でもいいのですが、ほとんどの人はテストデータの予測結果を宣言する場合、『holdout_pred』と書きましょう。お作法です。 ですから、 holdout_pred = predict_model(best) とコードを書くと、下記のように指定したモデルの性能評価が出力されます。 ※ MAE、MSE、RMSE、R2、RMSLE、MAPEに関しては、『#59 Section14 回帰(3)モデルの評価・比較』を参照してください。 ↓スライドはクリックすると大きくなります! 2.予測結果の出力 『holdout_pred』は、 予測結果が格納されたデータフレーム を保持していますので、下記のコードのように『holdout_pred.head()』とすると、指定したモデルをテストデータに当てはめた予測結果が出力されます。元にデータに『 prediction_label 』という列が追加され、そこに『保険料(charges)』の予測結果が表示されています。これで、テストデータの予測ができました。 3.新たなデータで予測 同じコードは、未知のデータセットのラベル予測にも使えます。 元のデータのコピーを作成し、列『charges』を削除し、新たなデータ『new_data』を作成します。 次は、この『new_data』を下記に当てはめて、 『new_data』の予測をしています。 predict_model(モデル名, data=データ名) ...

#61 Section 16 回帰(5) モデルの分析(2)

イメージ
PyCaretでは、『plot_model関数』を使わなくても、下記の『evaluate_model関数』を使うことにより、クリック一つで、様々なモデルの評価を可視化(グラフ化)することができます。 しかも、たった一行! evaluate_model(モデル名) このコードを実行させると、下記のスライドにあるような出力結果が表示されます。 ※スライドはクリックすると大きく表示されます! ① は、『Plot Type』と表示されているように、モデルの評価を可視化するグラフのボタンです。実行直後は、『Pipline Plot』が選択され、 ② のように機械学習モデルを構築する際にPyCaretが自動的に行った前処理を視覚的に表現しています。 今回は、このモデルの評価を可視化するグラフグラフを解説していきます。 下記は、 『 plot_model 』関数を使って表示させたグラフです。 PyCaretには、この3つ以外にも多くのグラフを表示させる機能が含まれています。さらに、 ① の各ボタンをクリックすると、コードを書かなくても、様々なグラフが現れます。それを順番に解説していきます。 1. Hyperparameters パラメーター(Parameter)は、モデルが訓練データから自動的に学習し、調整していく重みやバイアスなどの値です。それに対して、 ハイパーパラメータ (Hyperparameter)は、学習前に人手で設定するアルゴリズムの挙動を制御する値です。つまり、 パラメータはモデルが学習によって得たもの 、 ハイパーパラメータはモデルの学習の前に設定 するものとなります。 Hyperparametersでは、PyCaretがハイパーパラメータをどのように設定したかを表示してくれます。 本来、ハイパーパラメータは、分析者が経験等に基づいて決めるものですが、PyCaretはいい感じに決めてくれます。 次スライド以降でハイパーパラメーターの解説をしますが、PyCaretには、このハイパーパラメーターをチューニングして一番結果が良いものを選択してくれる機能(『tune_model』関数)がありますので、こだわって覚える必要はありません。この辺が、PyCaretは『シチズンデータサイエンティスト』にぴったりな分析環境と言える所以です。 次の9枚のスライドは、『Hyperpa...

教育訓練休暇給付金

イメージ
 2025年10月、「教育訓練休暇給付金」が創設されました。 「資格取得のために会社を休んで通学すると、その間の給料が不安・・・」と思ったことがある方などは、検討すべき制度です。 詳細は、こちらを参照してみてください。 https://www.mhlw.go.jp/content/001543278.pdf 重要なことを、まとめてみました! 1.支給対象者 2.受給期間・給付日数・給付日額 3.「教育訓練休暇給付金」の支給対象となる休暇 4.対象となる講座 教育訓練給付金厚生労働大臣指定教育訓練講座 検索システム https://www.kyufu.mhlw.go.jp/kensaku/

#60 Section 15 回帰(4) モデルの分析(1)

イメージ
 前のSectionでは、『compare_models』関数で評価が高かったモデル『catboost』を『best』と宣言しましたが、今回は、その『best』というモデルを分析していきましょう。 『 plot_model 』関数を使用すると、テストセットにおける学習済みモデルのパフォーマンスをグラフによって分析できます。 plot_model(モデル名, plot='グラフの種類’) plot_modelのグラフの種類についての詳細は、下記の公式ドキュメントの『Examples by module→Regression』を参照してください。 https://pycaret.gitbook.io/docs/get-started/functions/analyze#regression さて、続けてPyCaretの公式チュートリアルを見ていきましょう。 『モデル名』は、「best」を指定しています。 『グラフの種類』には、「 'residuals' 」を指定しています。これにより、『 残差プロット (Residuals Plot)』を出力します。 実行して、出力を見てみましょう、残差プロットが表示されます。 残差 は、 実際の値と予測値の差 のことです。 ● 散布図 (左側)  横軸: モデルによる予測値(Predicted Values)  縦軸: 残差(Residuals、実際の値と予測値の差) この散布図により、予測値の大きさに関わらず残差がランダムに分布しているか(パターンがないか)を確認します。理想的なモデルでは、残差は横軸の0の周りに均等に散らばっています。 ● ヒストグラム (右側) 散布図の残差の分布を示すヒストグラムが表示されます。    回帰分析の基本的な仮定として、残差は正規分布に従うことが望ましいため、ヒストグラムが釣鐘型(正規分布に近い形)になっているかを確認します。 以下の場合、モデルはデータの構造を適切に捉えており、回帰分析の仮定がおおむね満たされていると判断できます。 ・ 残差が0の周りに均等に分散している(散布図) ・ 残差に特定のパターンが見られない(散布図) ・ 残差の分布が正規分布に近い(ヒストグラム) 次は、 『グラフの種類』に「 ‘error’ 」と記入しています。横軸に実際の値、縦軸に予測値をプロ...