(旧) ヒノマルクのデータ分析ブログ

どんな企業、地域、国でも働けるようなスキルを身につけていくブログ

PythonやBIツールを使って分析と可視化をします

免責事項とプライバシーポリシー

免責事項

  • 当サイトに掲載している情報は寄稿者の調査・見解・経験に基づくものであり、記事の内容の正確性や品質に関しては一切保証いたしません。
  • 当サイトの記事内容やサイトのURLは事前の予告なく変更・更新する場合があります。変更や更新によって生じた損害等に関しても責任を負いません。
  • 当サイトの記載内容を参照・改変・経由し発生した、いかなる事由・問題についても責任を負いません。

プライバシーポリシー

Google アナリティクス

当サイトではアクセス解析のためにGoogle アナリティクスを使用しております。 データ収集のためにCookieを使用します。 データが収集、処理される仕組みについては、Google のサービスを使用するサイトやアプリから収集した情報の Google による使用を確認してください。

Googleアドセンス

当サイトはGoogle及びGoogleのパートナー(第三者配信事業者)の提供する広告を設置しております。その広告配信にはCookieを使用し、当サイトへの過去のアクセス情報に基づいて広告を配信します。

DoubleClick Cookie を使用することにより、GoogleGoogleのパートナーは当サイトや他のサイトへのアクセス情報に基づいて、適切な広告を当サイト上でサイト利用者に表示できます。

サイト利用者は下記のGoogleアカウントの広告設定ページで、インタレストベースでの広告掲載に使用される DoubleClick Cookie を無効にできます。また aboutads.info のページにアクセスして頂き、インタレストベースでの広告掲載に使用される第三者配信事業者のCookieを無効にできます。

その他、Googleの広告におけるCookieの取り扱い詳細については、Googleのポリシーと規約ページをご覧ください。

[Python] その2の2 ボストンの住宅価格を重回帰分析ver2で予測してみた

重回帰分析を以前やりましたが、 説明変数はマニュアル方式で 集計結果のグラフを見ながら選んでいました。

今回はバージョンアップして全ての説明変数の組み合わせを 試して一番精度がよいモデルを選択するプログラムを組みました。

精度の評価方法は色々ありますが、本記事ではMean Absolute Error(MAE)の値が 一番小さいモデルをベストモデルとして採用するようにしています。

※ MAE = 日本語では平均絶対誤差と呼ぶそうです。分析のコンペなどでたまに 評価方法で採用されています。

続きを読む

近況のまとめ

コロナになってからバタバタして更新が滞っていたhinomarcです。

生活様式がかなり変化し、慣れるまで時間がかかってしまいました。

久しぶりにこのブログのアクセス状況を見てみたら、 なかなか閲覧してくださっている方がいることがわかりました。

これはかなり嬉しかったです。読んでくださりありがとうございます。

特に重回帰の記事が人気のようです。

hinomaruc.hatenablog.com

マーケティング系の方が読んでくださっているのでしょうか?

変数選択が記事の内容だと完全に集計結果から判断した マニュアルでの選択なので、一番精度が良い組み合わせのモデルを 出力するように改良したバージョンも寄稿しようと考えています。

あとは他のデータセットでも分析してみたいですね。

ブログの改善点としては記事を書いた時のソースコードで 分析結果が再現できるようなスキームを考えないといけないですね。

基本的には投稿時の最新のバージョンを使うようにしたいと思いますが、 パッケージの関数などはよくdeprecateになるのでバージョン固定の方がいいですよね。

分析環境の記事も考えて書いた方がいいような気がしてきました。 (多くの優秀な方がもう記事にしていると思うのでいまさら私が書くまでもないですけどね 笑)

Nintendo Switch Lite買ってしまった

奥さんがあつまれ動物の森をやりたいというので、Nintedo Switch Liteを入手しました。

毎週火曜日にAmazonから定価で販売されるので、ねらっていました。

9:00に確認.... 販売されていない。

9:30に確認.... 販売されていない。

今週に限って販売されないのかなと思ったのですが、 転売ヤー対策でもう少しずらして販売してくるのかなと 思い9:45に再度確認....

お、定価になってる!!!

奥さんと二人でポチポチしていましたが、なかなか決済できず。 (サイトが混み合ってエラーになってしまう..)

コーラルしか定価販売していなかったのですが、 10時ごろターコイスも定価販売し始めたところで やっと決済できるように!!!

めでたく2台購入することができました。 (奥さんと自分で1台ずつ、1アカウント1台しか購入できないのでご注意を)

Nintendo公式やヨドバシの抽選は中々当たらなかったのに、 Amazonだとすんなり買えました。

まだ欲しいけど購入できない方はぜひお試しください。 (いつまで毎週火曜日に定価販売しているかは不明です。)

私はドラクエビルダーズ2を買います。 (前作はPS3でやりこみました。2をPS4を購入してまでやる気になれず Switchでできるようなので楽しみです。)


【予測結果まとめ】ボストンの住宅価格 (Boston housing prices corrected)

どうもhinomarucです。ずっとやらないといけないと思っていたことですが、今までPython機械学習で作成したボストンの住宅価格の予測モデルの結果をまとめました。

結果のまとめ

精度の良さ 指標 単回帰 重回帰 多項式回帰 (n=2) ニューラルネット サポートベクター回帰 Random Forest XGboost
1に近いほどいい adjusted_r2(train) 0.55 0.68 0.81 0.60 0.63 0.98 0.98
1に近いほどいい adjusted_r2(test) 0.55 0.70 0.60 0.59 0.63 0.85 0.88
低いほどいい 平均誤差率(test) 0.21 0.18 0.18 0.25 0.17 0.12 0.11
低いほどいい MAE(test) 4.65 3.54 3.10 4.35 3.76 2.39 2.24
低いほどいい MedianAE(test) 3.51 2.49 2.36 3.69 2.36 1.66 1.64
低いほどいい RMSE(test) 6.57 5.26 5.00 5.90 5.84 3.51 3.13
1.253に近いほどいい RMSE(test) / MAE(test) 1.41 1.48 1.61 1.36 1.55 1.47 1.40
精度の良さ 指標 XGboost (Grid Search) Voting Regressor
1.GradientBoostingRegressor
2.RandomForestRegressor
3.LinearRegression
Voting Regressor
1.XGBRegressor
2.RandomForestRegressor
3.LinearRegression
1に近いほどいい adjusted_r2(train) 1.00 0.89 0.94
1に近いほどいい adjusted_r2(test) 0.90 0.82 0.87
低いほどいい 平均誤差率(test) 0.10 0.13 0.11
低いほどいい MAE(test) 2.07 2.79 2.23
低いほどいい MedianAE(test) 1.51 1.91 1.52
低いほどいい RMSE(test) 2.89 3.91 3.27
1.253に近いほどいい RMSE(test) / MAE(test) 1.39 1.40 1.47
精度の良さ 指標 アンサンブル学習
1. 重回帰
2. 多項式回帰
3. XGboost
アンサンブル学習
1. 重回帰
2. 多項式回帰
1に近いほどいい adjusted_r2(train) 0.87 0.76
1に近いほどいい adjusted_r2(test) 0.84 0.77
低いほどいい 平均誤差率(test) 0.12 0.14
低いほどいい MAE(test) 2.44 2.89
低いほどいい MedianAE(test) 1.87 1.95
低いほどいい RMSE(test) 3.65 4.40
1.253に近いほどいい RMSE(test) / MAE(test) 1.50 1.52

結果は、XGBoost (grid search)が一番良かったですね。訓練データに対する調整済みR2の値が1でテストデータに対する調整済みR2の値が0.9なので若干オーバーフィット気味ですが中々の精度です。

最適なパラメータを追求していけば、もっと精度があがりそうな気がします。

その9 ボストンの住宅価格をアンサンブル学習(Voting regressor)で予測してみた

どうもhinomarucです。 複数のモデルを組み合わせて、 精度がよいアウトプットを作ることは kaggleなどのコンペをみてやってみたいと 思っていました。

アンサンブル学習の一つである、voting regressorで 住宅価格を予測してみました。

A voting regressor is an ensemble meta-estimator that fits base regressors each on the whole dataset. It, then, averages the individual predictions to form a final prediction. 参考: https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.VotingRegressor.html

sklearnのvoting regressorだと説明変数が全てのアルゴリズムで、 共通になってしまうので、各アルゴリズムごとに説明変数 の組み合わせを変更してモデル作成したい場合は自分で各モデルから算出した予測値の平均を取る必要があります。

続きを読む