Pythonで簡単に使えるAutoML「PyCaret」で機械学習をクイックに試す

AutoMLでまたひとつ便利なものが増えていました。PyCaretというのが最近話題になっていたので、試してみました。

Home – PyCaret

分類、回帰、クラスタリング、異常検知、自然言語処理、関連性探索ができます。

データ登録

データの前処理としては、One-Hot Encodingなど、基本的なことは勝手にやってくれるようです。ただ、特徴量自体を抽出したり、組み合わせるなどは、どこまで細かくやってるかはもう少し使ってみないとわからないです。恐らく細かい特徴量エンジニアリングをするなら、自分で前処理する必要があると思います。クイックに試すなら、超簡単です。

PyCaretでは、様々なデータも取得することが可能です。今回はワインの赤白を分類する例で、試してみました。

[python]
from pycaret.datasets import get_data
dataset = get_data(‘wine’)
[/python]

 

データをPyCaretに登録します。

[python]
from pycaret.classification import *
exp_clf101 = setup(data = data, target = ‘type’, session_id=123)
[/python]

 

これで終わり。ただ、Enterを押さないと処理が完了しないので、それだけ注意。

もう少し細かい設定もできます。具体的な内容は、こちらの記事が詳しく書かれています。

PyCaretでできる前処理について調べてみた – Qiita

 

モデルの比較

様々なアルゴリズムで学習させたモデルの比較はこれだけ。こちらも超簡単。これだけで、対応しているアルゴリズムが一斉に検証されます。

[python]
compare_models()
[/python]

 

特定のアルゴリズムで検証したい場合はこちら。

[python]
lightgbm = create_model(‘lightgbm’)
[/python]

 

モデルの精度改善

グリッドサーチでハイパーパラメータのチューニングをやってくれるようです。ターゲットとする精度指標をオプションで指定することも可能です。

[python]
tuned_lightgbm = tune_model(‘lightgbm’)
[/python]

モデルの可視化

可視化も簡単にできます。一括に出すならこちら。

[python]
evaluate_model(tuned_lightgbm)
[/python]

 

Confusion Matrix、AUC、Feature Importanceなどを選択すると、それぞれが表示されます。

他にもモデルをアンサンブルさせることもできますし、クイックにモデル検証や精度改善もできそうです。それ以外にも、予測・クラスタリングなどもできます。用途も結構ありそうですね。

自分みたいな俄かには、こういうAutoMLは勉強にもなりますし、細かな処理に煩わされることもないので、ありがたい限りです。

あいみょんや髭男がいつからブレイクしたのか、Prophetで時系列分析する

Prophetの勉強のために、いろいろ分析ネタを探しているのですが、今日は変化点の抽出です。

テーマは、あいみょんやOfficial髭男dismがいつ頃からブレイクしたのか、Prophetの変化点抽出の機能で可視化したいと思います。

前半部分は、前回の記事と同じコードを使っています。

花粉症が増えているのか、ProphetでGoogleトレンドを分析した

まずはGoogleトレンドのデータを抽出

あいみょんとOfficial髭男dismを、Googleトレンドで検索した結果がこちらです。

グラフでぱっと見た感じだと、あいみょんは2018年初め、Official髭男dismは2019年の半ばぐらいからでしょうか。

あいみょんを分析

トレンドに分解すると、こんな感じです。ここで見ても、2018年で上がり始め、2019年を過ぎたころにピークを迎え、今は少し落ち着いてます。

 

 

で、今回のメインである変化点抽出。基本的には、こちらのサイトのコードを拝借しました。

Facebookの予測ライブラリProphetを用いたトレンド抽出と変化点検知 – Gunosyデータ分析ブログ

可視化したグラフとコードがこちらです。

[python]
import seaborn as sns

# add change rates to changepoints
df_changepoints = gt_data.loc[m.changepoints.index]
df_changepoints[‘delta’] = m.params[‘delta’].ravel()

# get changepoints
df_changepoints[‘ds’] = df_changepoints[‘ds’].astype(str)
df_changepoints[‘delta’] = df_changepoints[‘delta’].round(2)
df_selection = df_changepoints[df_changepoints[‘delta’] != 0]
date_changepoints = df_selection[‘ds’].astype(‘datetime64[ns]’).reset_index(drop=True)

# plot
sns.set(style=’whitegrid’)
ax = sns.factorplot(x=’ds’, y=’delta’, data=df_changepoints, kind=’bar’, color=’royalblue’, size=4, aspect=2)
ax.set_xticklabels(rotation=90)
[/python]

[python]
figure = m.plot(forecast)
for dt in date_changepoints:
plt.axvline(dt,ls=’–‘, lw=1)
plt.ylim(0,100)
plt.show()
[/python]

 

変化点はこんな感じになっています。

0 2017-03-12
1 2017-10-29
2 2017-12-31
3 2018-02-25
4 2018-04-22
5 2019-02-10
6 2019-04-07

グラフと照らし合わせながらみると、2017年10月~2018年4月ぐらいまでで連続して変化点が生じているので、このあたりがブレイクポイントかなと。

Wikipediaのディスコグラフィーと見比べると、「君はロックを聴かない」から「満月の夜なら」あたりでしょうか。

あいみょん – Wikipedia

 

Official髭男dismを分析

次はヒゲダンです。こちらは念のため、「Official髭男dism」と「ヒゲダン」の両方を見てみました。

最近は「ヒゲダン」の方が多いんですね。ただ、ブレイク時期を見るには「Official髭男dism」の方がよさげなので、こちらで分析進めます。

あいみょんと同じように、まずはトレンドの分解から。

大きな変化点は、2018年の後半あたりにある気がしますね。

次は変化点抽出です。同じグラフはこちら。

変化点はこんな感じになっています。

0 2017-09-03
1 2017-10-29
2 2018-04-22
3 2018-06-24
4 2018-08-19
5 2018-10-14
6 2018-12-09
7 2019-02-10
8 2019-04-07

こうみると、2018年過ぎたころから立て続けに変化点が訪れており、その都度Googleトレンドの値が徐々に上がっているのがわかります。最後、ガッと上がっているのが2019年4月ですね。

同じようにディスコグラフィーを見ると、メジャーデビューしたのが2018年4月なので、そのあたりがちょうどGoogleトレンドの上昇傾向の開始と合致します。そして、Pretenderの発売が2019年5月なので、この発売と合わせて急上昇していったように見えます。

Official髭男dism – Wikipedia

 

ということで、Prophetで変化点抽出を見てみました。目視でグラフで見るだけでは感じなかった、トレンドの変化を抽出することができました。逆に、違和感みたいなところもあるので、使い方次第というか、実データや背景などと組み合わせて読み解く必要もありそうです。

花粉症が増えているのか、ProphetでGoogleトレンドを分析した

今年は花粉症が軽い感じだな、と思っていたのですが、一方で毎年花粉症の人は増えているという報道を目にした覚えもありました。実際どうなんでしょう?

ふと気になってGoogleトレンドで過去の経緯を調べてみました。Googleトレンドで日本の「花粉症」で検索された結果がこちらです。

[python]
from pytrends.request import TrendReq
pytrends = TrendReq(hl=’ja-JP’, tz=360)

kw_list = ["花粉症"]

# 全期間を取得
pytrends.build_payload(kw_list, cat=0, timeframe=’all’, geo=’JP’, gprop=”)
df = pytrends.interest_over_time()

%matplotlib inline
df.plot(figsize=(15, 3), lw=.7)
[/python]

 

毎年2月ぐらいに大きくなる、というのを繰り返しています。そのピークの山は年ごとに違っているようです。全体で増えているのかどうかは、ちょっとわかりづらいですね。

これを、トレンドに分解してみます。FacebookのProphetを使いました。

[python]
import pandas as pd # DataFrame
from fbprophet import Prophet # prophet

gt_data = pd.DataFrame()
gt_data[‘ds’] = df.index
gt_data[‘y’] = df[kw_list].values

# Prophetモデルの構築
m = Prophet(weekly_seasonality=False)

# 学習
m.fit(gt_data)

# 将来30日間を予測
future = m.make_future_dataframe(periods=30)
forecast = m.predict(future)

m.plot_components(forecast)
[/python]

全体のトレンドでみると、やはり右肩上がりになっています。増えている感じがしますね。

そして、年間の推移でみると、1~3月は盛り上がり、それ以外はほぼ低迷な状況です。イネ花粉など春以外にも花粉症はあると言われていますが、春の花粉症以外はそれほど強い関心にはなっていないんですかね。

ということで、Googleトレンドで見る限りは、この5年間ほどで花粉症は全体として増えているようです。

時系列分析ツールProphetで140年分の岐阜の気温を分析してみた

Facebookが開発した時系列解析パッケージのProphetは、結構便利なのでいろいろ使い方を考えています。

超簡単に時系列予測するデータ分析方法は知っておいて損はない

 

で、こちらの記事を見つけたので、模倣して分析させていただきました。

あまりに暑いのでProphetで140年分の気温を分析した

全く同じだと芸がないので、対象データは岐阜のものにしました。こちらの気象庁のサイトで、対象拠点を岐阜にするだけなのですが・・・。

気象庁|過去の気象データ・ダウンロード

 

140年で気温はどんどん上昇している

気象庁のデータは1870年代からあります。こんなに昔から統一フォーマットで公開されているデータというのも、非常に貴重ですね。

こちらが実際の140年分の日次データです。

これだけ長い期間での推移をみると、全体で上昇しているのがわかります。やはり、元ネタの記事と同じように、岐阜でも気温は右肩上がりかな,、というのがわかります。

こちらはデータを、トレンドに分解したものですが、これも同じです。

140年で3度ほど気温が上がっています。そりゃ暑いと思うわけですね。

 

今年はやはり暖冬だった

次は直近の気温の推移を描画します。過去2年のデータと予測(30日分)がこちらです。

昨年の冬と比べても、今年の冬は信頼区間(80%)を超えて平均気温が高い日が多かったことがわかります。

 

ということで、Prophetで簡単に気温を可視化し、傾向を分析したり、予測することができました。Prophetって本当便利ですね。

COVID-19の感染予測をシミュレーションで理解する

いろいろ調べ物をしていたら、まさに今話題のCOVID-19のような、感染をシミュレーションするモデルがあることを知りました。

SIRという感染シミュレーションです。免疫がない感染可能性がある(S)→感染者(I)→回復して免疫を獲得した人(R)という状態遷移を示します。シンプルなモデルのようですが、これでどのように感染が広がり、収束していくかをシミュレーションすることができるようになります。

こちらにpythonでシミュレーションできる記事がありますので、興味がある方はやってみると良いでしょう。自分も写経してみました。

感染病の数学予測モデルの紹介 (SIRモデル) – Qiita

いくつかパラメータがあるのですが、感染率が高いと当たり前ですが収束に時間がかかることがわかります。

こちらと

こちら

 

感染率を倍にすると、感染者数も倍以上になりますし、増えていくスピードも急速です。

さらに、感染後の回復率が低くなると、さらに感染者が増え、収束するまでの時間がかかるようになります。

 

感染者数は一時的に急増すると、限りある医療資源にアクセスできなくなるため、この感染スピードをゆるくする必要があります。

よく言われている医療崩壊を防ぐ、というところですね。

 

ちなみに、こちらでGUIにもできます。

SIRモデル計算プログラムをGUI化する – Qiita

 

そして、自分でやるのが面倒な人は、こちらの記事をご覧ください。SIRモデルよりもっと詳細なモデルでシミュレーションした結果が公開されています。

都道府県ごとのシミュレーションによる検討 – COVID-19情報共有 — COVID19-Information sharing

 

全ての都道府県があるわけでは無いですが、これまでの感染者のデータを見ながら、モデルを検証し、今後の推移もシミュレーションされています。

シミュレーションではないですが、ダッシュボードでデータを見ることもできるようになっています。都道府県ごとの感染者数や検査数の推移がわかるようになっています。素晴らしいですね。

東京都のオープンソースを活用した新型コロナウイルス感染症対策サイトの紹介 | 政府CIOポータル

勾配ブースティングのXGBoostやLightGBMを理解しつつ動かしてみる

勾配ブースティングについて、勉強したくていろいろ情報を集めながら、実際にコーディングしました。

Kaggleでもディープラーニングより、XGBoostやLightGBMなどの勾配ブースティングを使ったアルゴリズムで高い精度が出るケースが多いという話もあり、これを学ぶといろんな場面で使えそうです。

とりあえず、非エンジニアでも「とりあえず概要をざっくり理解しつつ、触ってみよう」を目標にします。

GBDTの基礎知識

勾配ブースティング(Gradient Boosting)は、弱学習器を組み合わせたアンサンブル学習のひとつで、それを決定木系で実現したのがGBDT(Gradient Boosting Decision Tree)です。

調べてみると、日本語の情報が充実していない印象もありますが、こちらのコンテンツを読むと良いと思います。

勾配ブースティングについてざっくりと説明する – About connecting the dots.

GBDTの理解に役立つサイトまとめ – copypasteの日記

英語にはなりますが、こちらのYouTube動画が非常にわかりやすかったです。丁寧に簡単の例を交えながら、GBDTについて説明してくれます。

XGBoostとLightGBMのインストール方法

実際にPython環境にインストールしてみましょう。自分の場合は、WindowsのAnaconda環境なのでその前提です。こちらのコマンドで、簡単に導入することができます。

conda install -c conda-forge xgboost
conda install -c conda-forge lightgbm

こちらの記事を参考にさせていただきました。

LightGBM/XGBoostをAnaconda経由で簡単にインストールする方法 – Qiita

データの前処理

直接的にGBDTと関係あるわけではないですが、構造化データの前処理として必要なことも書いておきます。

前処理全般という意味では、こちらが大変参考になりました。

モデリングのための特徴量の前処理について整理した – For Your ISHIO Blog

こちらは、決定木系でOne-Hot Encodingが必要かどうかを調べたときに、参考にさせていただいた記事です。

カテゴリカル変数はなんでもダミー変換すればよいのか?-アルゴリズムに応じたOne Hot EncodingとLabel Encodingの使い分け | キヨシの命題

ハイパーパラメータのチューニング

PythonでXGBoostやLightGBMを使うまでは比較的簡単だったのですが、その後のパラメータチューニングに一番時間をかけました。

XGboostのハイパーパラメータチューニング

XGBoostのハイパーパラメータの種類はこちらで確認。

Kaggleで大人気!XGBoostに関する備忘録 – Qiita

ハイパーパラメータのうち、重要度が高いパラメータからどう順序立ててチューニング進めていくのか、サンプルで示してくれています。

analytics_vidhya/XGBoost models.ipynb at master · aarshayj/analytics_vidhya · GitHub

LightGBMのハイパーパラメータチューニング

LightGBMのハイパーパラメータの種類をこちらで確認。XGBoostとの対比もあるのでわかりやすいです。

【機械学習】ハイパーパラメータチューニングの仕方 – Qiita

こちらは、インストール方法から丁寧に解説されていますが、特にハイパーパラメータの種類と特徴、目的に応じてどう調整するのかまで書かれています。

LightGBM 徹底入門 – LightGBMの使い方や仕組み、XGBoostとの違いについて

 

こんな感じでとりあえず、調べながらコーディングして、動かすところまで行けました。あと、ハイパーパラメータのチューニングは、結構難しいですね。

PFNのOptunaを使ってみるとか、そもそもの前処理での特徴量の作り方とか、いろいろ試してみる余地がありそうな気がしました。こういうチューニングの勘所が最短距離で作れるようになるって、もっと知識と経験が必要だなと思いました。

Optunaを使ってXGBoostのハイパーパラメータチューニングをやってみる

Python: Optuna の LightGBMTuner で Stepwise Tuning を試す – CUBE SUGAR CONTAINER

これまでと現在の政党支持率を調べてみた

気になったので、各政党の支持率の推移を調べてみました。

朝日新聞のデータだけなので、絶対値としては偏りがあるのかもしれませんが、20年以上前からデータがあり、これまでの政党支持率の変化がよくわかります。民主党への政権交代時は、だんだん自民党と民主党の支持率が拮抗し、交代に至ったことがわかります。

一方今は、自民党と他党の支持率に大きな乖離があり、交代の機運が得られていないように見えます。

次は政党支持率の傾向分析。どういうときに上昇・下降しているのかを見ながら、政党がどういう層に支持されているのかがわかります。

こちらも朝日新聞のデータ。今の内閣も長い期間の中で、支持層を変化させていったことがわかります。

今の内閣は若年層の支持が高く、女性よりは男性の方が支持が高いのが特徴。

そして常にウォッチしている永江先生の、政党支持率とスマホ普及率の関係に関する考察。

ちなみに、今のところ自民党総裁の任期が2021年9月末までですが、党則を変更して4選もありうるのでは、という観測も出ている状況です。

2019年度J2チームデータを可視化して勝つための要因を探ってみた

FC岐阜がJ3に降格する危機が迫っています。

明治安田生命J2リーグ第40節のアルビレックス新潟対FC岐阜戦が9日に行われ、ホームの新潟が2-0で勝利を収めた。この結果、FC岐阜はJ3自動降格圏の21位以下が確定している。
FC岐阜、J2で21位以下が確定。J3上位の成績次第で来季降格へ | フットボールチャンネルから引用

 

ずっと降格圏内を毎年さまよいながら、なんとかJ2に生き残ってきましたが、ついに本当のピンチのようです。

FC岐阜の年度別成績一覧 – Wikiwand

で、改めてJ2のクラブの状況を可視化してみながら、FC岐阜についても理解を深めようと思います。

ちなみに内容は、こちらの記事をほとんど踏襲してデータの取得や分析をしています。丸パクリさせていただきました。すみません。感謝です。pythonで自分でやりたい方は、こちらのソースコードを確認ください。

Pythonを使って2019年度J1チームデータを可視化してみた|Hana|note

改めて、J2順位の確認です。

順位チーム勝点試合得点失点得失点差
1柏レイソル78402398693237
2横浜FC734021109634023
3大宮アルディージャ734020137603822
4モンテディオ山形6740191011553619
4水戸ホーリーホック674018139553619
6徳島ヴォルティス6740191011624418
7ヴァンフォーレ甲府6540181111593920
8京都サンガF.C.6540181111574314
9ファジアーノ岡山654018111149454
10アルビレックス新潟5840161014685018
11ツエーゲン金沢5740141511554510
12V・ファーレン長崎5640175185658-2
13東京ヴェルディ52401313145356-3
14レノファ山口FC4740138195264-12
15FC琉球46401210185577-22
16ジェフユナイテッド千葉43401013174662-16
17愛媛FC4240126224558-13
18アビスパ福岡4140118213759-22
19FC町田ゼルビア4040816163455-21
20鹿児島ユナイテッドFC3740107233971-32
21栃木SC3440616183153-22
22FC岐阜304079243170-39

現在最下位です。残念。なんでこうなったのでしょうか。

勝点との関係

Jリーグが公開しているデータから、勝ち点に関係ある要因を可視化したいと思います。それがこちら。小さくてわかりづらいですが、勝ち点と正の相関が高いのが「得点」、負の相関が高いのが「失点」です。まあ、言われてみれば当然なのですが。

そして、得点と正の相関が高いのが「シュート」です。さらにシュートと「CK」はちょっと正の相関が高めです。

逆に、失点の負の相関が高いのが「被シュート」です。これも言われてみれば当然ですよね。

 

得点と失点の関係

次に得点と失点の関係を見てみましょう。

右側ほど得点数が多く、上側ほど失点数が多いです。右下ほど得点が多く失点が少ない、左上ほど得点が少なく失点が多いということです。FC岐阜は左上・・・。

ちなみに、得点がやや多めで失点が多い、失点が少なめだけど得点も少ないなど、各チームによって傾向が違います。ただ、簡単にいえば「得失点差」が重要なので、得点が多くても失点がそれ以上に多ければ負ける可能性が高く、その逆も然りです。勝ち点と得失点差の相関関係も0.9あります。

 

得点とシュート数の関係

得点とシュート数に正の相関があると書きましたが、これもチームによって違いがあります。それを示したのが以下のグラフです。

得点数が多い順に並べましたが、シュート数は違っています。決定率が違うということですね。それを実際に計算したのがこちら。

この2つのグラフをみるとわかるのですが、FC岐阜はシュート数が下から3番目ですが、決定率が下から2番目です・・・。

 

失点と被シュート数の関係

失点と被シュートも相関関係が高いのですが、これもグラフ化しました。

FC岐阜は失点数がリーグで上から3番目です。こちらも決定率を見てみましょう。

こちらはリーグ5番目です。

 

以上、簡単にJ2の傾向を可視化してみました。FC岐阜の絶望的な感じが可視化されて、やりながらつらかったですが・・・。

他にもFootball LABにもデータがあるようなので、いろいろ分析できると面白いかなと思いました。

データによってサッカーはもっと輝く | Football LAB[フットボールラボ]

Pythonを学ぶと単純作業を自動化できるので勉強しよう

最近、Pythonで久々にスクレイピングしていました。思い出しがてらいろいろ調べたので、メモがわりにここに残しておきます。本当に初心者級の基本を調べるところから始めましたが、2時間ぐらいで目的は達成しました。

スクレイピングの基本

BeautifulSoupでHTMLをパースする

HTMLの取得・パースは、BeautifulSoupが神です。これを使えばとりあえず問題ないです。

【保存版】Pythonでスクレイピングする方法を初心者向けに徹底解説!【サンプルコードあり】 | DAINOTE

 

CSV出力

URLリストの読み込みや、スクレイピング結果の出力にはCSVで。CSVを取り扱う基本的な操作を習得しましょう。データ処理するなら、pandasが良いです。

pythonでのcsvファイルの読み込み – Qiita

CSVにデータを書き込むときに、空行が勝手に出力されて困っていましたが、これで解決。

文字列演算

スクレイピングと関係ないといえば関係ないのですが、URLを加工したりCSV出力時のファイル名を生成するのに、文字列加工が必要だったので。

Pythonで文字列を連結・結合(+演算子、joinなど) | note.nkmk.me

 

Pythonなどのプログラミングを覚えるといろんなことができるようになる

Pythonとかプログラミング言語をちょっとでも覚えておくと良いのは、こういう単純作業を、効率的にできるからです。今回は2時間ぐらいかかりましたが、一方で手作業でページアクセスしてコピペしていたら3時間以上はかかったでしょう。

そして一度覚えれば、またコマンドを思い出したりは必要ですが、原理的なものはすぐに思い出せます。

こういう本でスクレイピング&クローリングを学ぶと良いです。

あるいはPythonでの自動化という広い意味であれば、こういう本も良いのではないでしょうか。

 

今回はスクレイピングの例だけでしたが、Pythonはデータサイエンスや機械学習も盛んになっています。データを分析するなら、こういうネタを勉強するのも良いと思います。

【世界で5万人が受講】実践 Python データサイエンス

Pythonで機械学習:scikit-learnで学ぶ識別入門

AI・人工知能・機械学習をビジネスで活用するために読む本まとめ

人工知能やディープラーニングがメジャーな言葉として飛び交う中で、専門的な技術者ではない人間が、それらに関する知識を得てイメージを膨らませていくための本をまとめました。

これらを読むことで、実際に人工知能特性や、ディープラーニングがなぜこれほど騒がれているのかを自分は理解することができましたし、ビジネスにどう活用するのかもイメージを持つことができました。

誤解だらけの人工知能~ディープラーニングの限界と可能性~

ざっくりと今のトレンドを理解するのは、この本が良いかと思います。ディープラーニングがなぜこんなに騒がれているのか、そのポイントが人工知能研究の過去の歴史と照らし合わせて、わかりやすく説明されているのも特徴です。

 

人工知能の現在地とこれからを知る。「誤解だらけの人工知能」を読んで

AI vs. 教科書が読めない子どもたち

こちらはどちらかと言うと教育目線にはなるのですが、人が人工知能とどういう違いがあるのかという対比の中で、人工知能の力と限界を理解することができます。当然、複雑な計算式なども出てこないので、読みやすいです。

 

AI時代にこれから求められる人間のスキルは「読解力」

ディープラーニング G検定テキスト

だんだん知名度が上がってきているディープラーニング検定ですが、人工知能のエッセンスが体系的によくまとまっているので、テキストを読むのがオススメです。多少計算式など技術的なことが書いてありますが、それが逆に一歩理解を深めることになると思います。

 

ディープラーニング活用の教科書

具体的にディープラーニングが活用されているケーススタディをまとめたものです。結局どういうところで利用されるの?という疑問は、この本を読めば解消されるでしょう。

人工知能の活用例を学ぶ「ディープラーニング活用の教科書」

失敗しない データ分析・AIのビジネス導入: プロジェクト進行から組織づくりまで

AI開発プロジェクトの進め方について、解説された一冊です。この本を読むと、プロジェクトの進め方のイメージが具体的になるでしょう。システム開発と似ているところもありますが、異なる点もたくさんあります。

 

Machine Learning実践の極意 機械学習システム構築の勘所をつかむ!

もう少し専門的に、具体的なプロジェクトやアプローチを知るのであれば、この本を読むと良いと思います。技術的な内容を書かれているのですが、数式が少なめで、どちらかというとデータをどのように分析しチューニングして実用につなげていくのかを、わかりやすくまとめているのが特徴です。エンジニアじゃない人こそ、この本を読むとデータ分析、AI開発のプロジェクトについて、具体的な作業のイメージが湧くと思います。

 

Udemy

知識や実践的な理論を学んだ後は、具体的な行動としてどのような面があるかを学ぶ意味で、Udemyがお勧めです。このコースでは、実際の機械学習を使ったデータ分析のアプローチが解説されています。

Pythonで機械学習:scikit-learnで学ぶ識別入門

【Kaggleで学ぼう】PythonとKerasで学ぶディープラーニング開発入門

AI時代の新・ベーシックインカム論

ちょっと番外編的にはなりますが、経済的アプローチからAIをどう捉えるかが書かれているのが本書です。これも、AIが今の社会のどの部分に置き換わるのかが示されており、経済的なインパクトを推し量ることができます。

AI・人工知能・機械学習をビジネスで活用するために読む本まとめ(2020年版)

様々な本が出ていますが、何冊か読むと、本質的な要旨が見えてきます。興味ある方は是非どうぞ。