機械学習ってなんだかかっこいい。面白そう。学んでみたい。でもなにからやればいいんだ。そんな悩みが最近よく聞こえます。
それもそのはず、最近ではデータサイエンティストという職業が注目されており、データの重要性が高まっているからです。
私も数年前にそんな流行に乗っかった一人でした。そんな私が学んだ機械学習の方法をお伝えします。
今回は書籍で学んだ方法を伝授します。
ということで、今回のレビューはこちら。
「[第3版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践」
この記事ではこの書籍のレビューと共に、Pythonをちょっとかじった初心者が1か月で機械学習の基礎を身に付ける方法についてまとめます。
この記事を読むと機械学習の勉強方法がわかります。この記事を実践すると1か月で機械学習の基礎が身に付きます。
Pyhtonがある程度使える前提なので、Pythonをちょっともかじってない!という方は下記にレッツゴー。
関連記事を載せておきます。
本記事の結論は下記になります。
- 機械学習は難しい?
→難しくない!ライブラリが豊富なので、先人の知恵が活用できる! - どうやって学ぶの?
→理論を理解する!実装してみる!条件を変えて遊んでみる!の3STEP! - 最初に学ぶべきものは?
→汎用的に必要なアルゴリズムから学ぼう! - 機械学習は経験あるのみ!コンペに参加して経験値を積もう!
では、本編にいきます。
いよいよ機械学習を学ぶ
いよいよ機械学習を学びます。Pythonの基礎から始まり、データ加工を学び、ようやくたどり着いた機械学習への道。思う存分に学んでいきましょう。
データサイエンティストにとって機械学習は身に付けておくべきスキルの一つです。特に、「サイエンス型」と呼ばれるデータサイエンティストにとっては自身の一番の強みとなる領域です。
機械学習を一通り学べばデータサイエンティストの仲間入りです。
データサイエンティストを志す方には必須スキルであり、面白い領域になります。

努力を続ける者に成果きたり。日々精進あるのみ。
機械学習の実装自体はさほど難しくない
初心者は機械学習を難しいものだと想像していることが多いですが、機械学習の実装自体はさほど難しくないです。理由としてはライブラリが豊富だからです。そうです、先人たちの知恵が残されているからです。
ライブラリを使うことで、複雑な機械学習のアルゴリズムを比較的容易に実装することが出来ます。
下記に、機械学習を実装する主要なライブラリを紹介します。
- scikit-learn:機械学習の超定番ライブラリ
「回帰」「分類」「クラスタリング」「次元削減」「データの前処理」「モデルの評価と選択」という6つの機能があり、前処理以降のモデル構築プロセスを広範にカバー。 - XGBoost・LightGBM:勾配ブースティング実装の人気ライブラリ
最高精度な機械学習の予測モデルと言えばこれ一択。勾配ブースティング系の実装を容易にできる便利ライブラリ。 - TensorFlow・Keras・PyTorch・Chainer:深層学習系のライブラリ
深層学習(Deeplearning)系のライブラリです。深層学習を容易に実装できます
初心者の方はまずはこれだけ知っていればOKです。もっというと、まず使えるようになるべきライブラリは「scikit-learn」だけで十分です。「scikit-learn」の使い方が分かれば、機械学習のライブラリの使い方が理解できるので、他のライブラリを使うハードルがぐっと下がります。

一意専心。一つのことを集中して学ぶ。幅を広げるのはその後。
まずは理論を理解しよう
ここから機械学習の学び方について解説していきます。
まずは機械学習の理論を理解しましょう。ライブラリを使って実装する前にまずは「なにが行われているのか?」を理解する必要があります。
ただし、なんとなくわかれば大丈夫です。機械学習は奥が深いので、深入りしようと思えばいくらでもできてしまいます。理解の基準としては「まったく機械学習を知らない人にちょっと説明できて、なんだかかっこいいと思われる浅はかな知識」ぐらいのレベル感で初めは十分です。
実際に機械学習を使いながら理解していく方が効率はいいので、まずはざっくりと理論を理解することが重要です。

皮相浅薄【ひそうせんぱく】:思慮や知識・学問などが表面的で、底が浅く薄っぺらなこと。
知らないよりはずっといい。まずは浅い知識を持つことから。
ライブラリを使って実装してみよう
理論をある程度理解したら、ライブラリを使って実装してみましょう。
「実装してみようと言われてもわかんないよ!」となると思いますが、大丈夫です。まずは、書籍に書いてあるサンプルプログラムを写経(書き写す)してみましょう。
下記の流れです。よろこびまでがワンセット。
- ページを読み進める
- 書いてある実行プログラムを写経(書き写す)してみる
- 実行する
- 成功をよろこぶ
プログラムに関しては読んでわかった気になるのは絶対にNGです。実際に自身の手で書いてみないとわからないことが多くあります。全く同じことを書いたつもりでも、絶対にエラーが発生します。
このエラーの積み重ねが自身の血肉になり、スキルの上達につながるので必ず自分の手で動かしてみましょう。

習うより慣れろ。とにかく見よう見真似でやってみること。それが上達への第一歩。
少し条件を変えて実行してみよう
写経が無事に終わって実行ができたら、条件を少しだけ変えて実行してみましょう。条件を少し変えて実行することで「なにを変えたらなにが変わるの?」がわかります。
条件の変え方はいろいろありますが、一番簡単なのは「データを変えてみること」です。入力するデータを少しだけ削ってみたり、数行だけ全部0にしてみたり。
ちょっと機械学習くんにいじわるをしてみて、どのような結果になる確認してみましょう。下記のような感じです。
- データを少しだけ変えてみる(いじわるする)
- 実行してみる
- 結果をみてみる(予測精度を確認する)
- また、データを少しだけ変えてみる ・・・
実際にやってみるとデータを少し変えただけで精度が落ちたりすることを実感することができると思います。データ加工の復習にもなりますし、一石二鳥です。
これをやると機械学習の実装におけるデータ加工の重要性がわかるはずです。
データ加工の重要性を経験・実感できると、もはや実務経験がないだけのデータサイエンティストのようなものです。立派です。

「Hard work always pays off」(努力は必ず報われる)。
小さな努力の積み重ね。
“[第3版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践” のオススメポイント
さて、機械学習の学び方を解説してきましたが、この学び方を実践するためのパートナーがこの方です。
この方はよいところがいっぱいです。下記のように魅力たっぷりです。
- 理論がほどよく解説されている
初心者でも理解できる粒度感で理論が解説されており、概要理解が容易にできる - サンプルプログラムが豊富
豊富なサンプルプログラムがあるため、初心者でも簡単に実装体験ができる - テーマが網羅的で幅広く学べる
網羅的なテーマが盛り込まれており、これ一冊でほぼすべての概要を学習できる - なんだかかっこいい気分になれる
なんといっても、あこがれの機械学習を実装・実行できてかっこいい気分になれる
まだお手元にない方はすぐに購入しましょう。「まず行動すること」が成功への一番の近道です。

“素晴らしい計画は不要だ。計画は5%、実行が95%だ。”(カルロス・ゴーン)
思い立ったらすぐ行動。これが成功の秘訣。
絶対に学ぶべき章
絶対に学ぶべき章について解説をします。
データサイエンティストの業務で汎用的によく使うテーマをピックアップしています。どのような企業に入社するかによって必要なスキルは変わりますが、どこにいっても使う可能性が高いテーマを優先的に選んでいます。
どのような企業にどんなスキルが必要かは下記を参考にしてください。
第3章 分類問題―機械学習ライブラリscikit-learnの活用
まずは「scikit-learn」の基礎を学びます。この章では機械学習における「分類」を学びます。機械学習の考え方、「scikit-learn」の使い方の基礎を学ぶ位置づけと捉えてよいでしょう。
美しいグラフも出てくるので、データ分析の可能性を感じる章になります。
第4章 データ前処理―よりよいトレーニングセットの構築
「データの前処理」について学びます。一部「データ加工」と重複する内容が出てきますが、本書では機械学習に入力する前提での前処理という観点で書かれています。
データを分割する理由などもあわせて学ぶことができ、機械学習活用のためのデータ加工が理解できます。
第5章 次元削減でデータを圧縮する
データ圧縮について学びます。データの情報量を残しながらデータを小さくする方法を学びます。少しテクニカルな内容ですが、重要度は高いです。
「莫大なデータがある際にいかに効率よく機械学習を活用するか?」という実務上でよく発生する課題に有用な知識を学べます。
第6章 モデルの評価とハイパーパラメータのチューニングのベストプラクティス
機械学習モデルのよしあしを検証する方法・考え方について学びます。作ったものをどう評価して、どう改善していくかを理解します。
機械学習モデルの精度をあげるために必須な知識を学べる章であり、ここが理解できていないと機械学習の精度をよくすることはできません。深く理解しておくべき内容です。
第7章 アンサンブル学習―異なるモデルの組み合わせ
アンサンブル学習を学びます。少しだけ機械学習の応用に近くなります。基礎的な機械学習を知ったうえで、より高度なアルゴリズムを学びます。これより前の章の知識が前提として記載されているので、学びやすい内容です。
最近の機械学習の潮流にも近いアルゴリズムなので、理解しておくことが重要です。
第10章 回帰分析―連続値をとる目的変数の予測
回帰分析を学びます。連続値の予測は実業務でもよく使われる予測です。基礎的な内容になりますが、連続値の予測における精度の評価など基本部分を学ぶことが重要です。
1か月で1通り学習する
個人差はありますが、目安で1か月かけて学習できると順調です。
毎日3H × 28日 +(土日はちょっと頑張って)=計100時間 という計算です。各章下記を目安にしています。
- 第3章 分類問題―機械学習ライブラリscikit-learnの活用(15時間)
- 第4章 データ前処理―よりよいトレーニングセットの構築(10時間)
- 第5章 次元削減でデータを圧縮する(20時間)
- 第6章 モデルの評価とハイパーパラメータのチューニングのベストプラクティス(20時間)
- 第7章 アンサンブル学習―異なるモデルの組み合わせ(20時間)
- 第10章 回帰分析―連続値をとる目的変数の予測(15時間)
こちらは目安になります。これ以上かかっても遅いということはないのでご安心を。
ここまでくれば、晴れてデータサイエンティストの仲間入りです。実際の業務経験が積めれば、データサイエンティストと胸を張って言えます。

為せば成る。ここからスタート。明るき未来へ。
コンペに参加してみよう
機械学習になれたら、コンペに参加してみましょう。コンペとは世界中のデータサイエンティストが機械学習を競う選手権のようなものです。参加は無料で、自身のスキルアップのために活用できるため多くのデータサイエンティストがチャレンジしています。
オススメのコンペは下記の二つです。
英語に抵抗がない方は「Kaggle」で進めるのがよいでしょう。データ分析だけで手いっぱいなのに英語なんてやだ!って方は「SICNATE」をオススメします。
ちなみに筆者は「SIGNATE」から始めました。英語が苦手だったので。
書籍で学んだ知識だけでは結果はボロボロになるでしょう。大事なのは参加して結果を残すことです。まずは結果を残すことをゴールに参加してみましょう。
機械学習は様々な状況を経験して、スキルアップしていくことが大事です。行動あるのみです。

一歩一歩。ゴールを設定して着実に昇っていくべし。着実な積み重ね。
【まとめ】機械学習の基礎を一通り学べばデータサイエンティストの仲間入り
機械学習の基礎を一通り学べれば、データサイエンティストの仲間入りです。
まずは一通り学んで機械学習の考え方・実装の流れを体験することが大事です。
以下、本記事のまとめです。
- 機械学習は難しい?
→難しくない!ライブラリが豊富なので、先人の知恵が活用できる! - どうやって学ぶの?
→理論を理解する!実装してみる!条件を変えて遊んでみる!の3STEP! - 最初に学ぶべきものは?
→汎用的に必要なアルゴリズムから学ぼう! - 機械学習は経験あるのみ!コンペに参加して経験値を積もう!
さいごに、本記事で紹介した書籍のリンクを再掲しておきます。
機械学習を学びたい人にはオススメの書籍ですので、思い立ったらすぐに購入して学習しましょう!
以上になります。バイバイ!
コメント