「機械学習ならPython!」と言われるほど認知度が高まっていますが、
どこから学習したらいいのかわからない..
と思っている人も多いのではないでしょうか?
そこで今回は機械学習入門にあたって、
- 機械学習の概要
- 機械学習でできること
- 機械学習でおすすめのライブラリ
- 便利な学習サイトやおすすめ書籍
についてご紹介していきます。
まずは基礎をしっかりと学習していくことで、様々な応用ができるようにもなりますので、体系的に学んでいきたい方はぜひ参考にしてみてください。
この記事の目次
【入門者は必ず理解しよう】そもそも機械学習とは?
機械学習とは
機械学習とは、大量のデータを反復的に分析して、そこに潜むパターンを見つけ出すことです。これは、人間が自然に行っている「学習能力と同様の機能」をコンピュータで実現しようとしているものです。
これによって、コンピューターで分析した結果を新たなデータにあてはめることで、パターンにしたがって将来を予測したりすることができるようになります。
AI(人工知能)・機械学習・深層学習(ディープラーニング)の違い
機械学習と聞くと、AI(人工知能)や深層学習(ディープラーニング)と何が違うのかが気になりますね。
機械学習とAIと深層学習は、同じカテゴリーの違う分野を指す言葉です。
機械に人間と同じような知能を実装させようという試み全体をAI(人工知能)と呼び、その中に機械学習があります。
そして、機械学習というカテゴリの中に、マシンが自分で必要条件を定義して学習を行う深層学習(ディープラーニング)があるという風に理解していただくとわかりやすいと思います。
今回はあくまで、Pythonを使った機械学習についてご紹介をしていくので、AIや深層学習ついて詳しくは触れませんが、もしこういった分野にも興味のある方は、こちらの記事も参考にしてみてください。



なぜ機械学習でPythonが使われるの?
現在、機械学習の人気が高まっていますが、機械学習のプログラムを書くのに使われるのがPythonです。
機械学習には、R言語やC言語といった他の言語を使うこともできますが、現在はPythonが最も広く使われています。その背景には、以下のような利点があります。
信頼性が高い
Pythonは機械学習のみならず、Webアプリケーション開発にも使われ、広く利用されている言語です。例えば、Youtube・Dropbox・Instagram・Evernoteと言ったサービスは、Pythonを使って作られています。
そのため、大企業でも使われることが多く、機械学習で使われる他の言語に比べて、信頼性が高いのが特徴です。
文法がシンプル
Pythonは、プログラミング初心者が最初に学習する言語の一つでもあるほど、シンプルでわかりやすい言語です。
他の言語に比べて習得しやすいのはもちろん、他の人の書いたコードでも見やすいので、共同開発やオープンソースのコードの活用などがしやすい言語でもあります。
そのため、効率的に開発がしやすく、開発速度をあげたい企業やエンジニアに重宝されています。
ライブラリが充実しており、コミュニティも活発
Python最大の魅力は、ライブラリやフレームワークが充実していることです。
ライブラリやフレームワークとは、再利用可能な関数やシステムのことで、開発効率を上げるために使われます。
ライブラリやフレームワークが多いほど、使えるリソースがたくさんあるということになり、言語の利便性や汎用性の高さにつながります。
特にPythonでは、機械学習で必要な関数をまとめたライブラリが充実しています。
こうしたライブラリを活用することで、複雑な関数を自分で実装する必要がなく、初心者でも機械学習のコードを書くことが可能になります。
また、こうしたライブラリやフレームワークを作ったり、ライブラリを活用したコードのシェアなども積極的に行われています。こうした活発なコミュニティも、Pythonの人気を後押しする要因となっています。
Pythonを使った機械学習でできること
株価の予測
機械学習を利用することで、株価の予測をすることができます。
- 順調に株価が上がっている銘柄ならば、今日も株価が上がる
- サインカーブを描いている銘柄なら、同じパターンを繰り返す
という人間がチャートを確認して理解できることなら、比較的簡単に機械学習で学ばせることができます。
実際、トレーディングの世界では、複雑な数式を用いてAIにトレーディングをさせるシステムトレーディングも一般的になりつつあり、機械学習をトレーディングに活用するトレンドは今後も人気となりそうです。
画像認識・分析
機械に「犬」「人間」「猫」などの違いを認識させたりするのも、Pythonを使った機械学習で行うことができます。
画像解析には、4つの領域があり、それぞれ以下のような分類になっています。
こうした技術を利用することによって、カメラの「顔検出」機能や、iPhoneに搭載されているFace ID(顔を使ってロックを解除する機能)などの技術が可能になっています。
また、自動運転に置いても、領域検出の技術が使われていますので、将来的にも有望な研究分野とも言えます。
テキストマイニング
テキストマイニングとは、大量の文字データの中から、言語解析や統計解析などを使って、必要なデータを取り出すことです。
大量のアンケートやSNS(Twitterなど)の分析をするのに使われます。顧客の不満や要望を救い上げたり、密かにブームになっているワードなどを探すために用いられるのが一般的です。
また、スパムメールの判別などにも、テキストマイニングの技術が使われています。
機械学習に使えるおすすめPythonライブラリ
それでは、実際に機械学習を学びたい人に向けて、使えるPythonライブラリを3つご紹介しましょう。
scikit-learn(機械学習の全てのジャンル)
scikit-learn(サイキットラーン)は、機械学習の様々な分野に活用できるライブラリです。オープンソースで無料公開されているので、個人・商用を問わず、誰でも利用することができます。
scikit-learnは主に以下のようなことに利用されています。
回帰:与えられたデータをもとに、指定された値を予測すること。先ほど紹介した株価予測もこれにあたります。2択に使われる「分類」とは異なり、具体的な数値を予想するのが特徴です。
クラスタリング:異なる性質が混じり合った集団を、ある規則や共通事項に基づいて分類すること。人間がラベルを与えることなしに、コンピューターが自分で分類モデルを作るのが特徴で、顧客分析などに使われます。
実際にscikit-learnを使ってみたいという人は、以下の記事も参考にしてみてください。


OpenCV(画像認識・分析)
OpenCV(Open Source Computer Vision Library、オープンシーヴィー)とは、インテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリです。
顔検出や、輪郭検出、物体検出などを行うことができ、画像認識用のライブラリとして広く使われています。
OpenCVを使えば、初心者でも比較的簡単に手持ちの画像を使って、顔検出を行うことができます。
具体的な方法はこちらの記事でまとめてありますので、ぜひ参考にしてみてくださいね。

TensorFlow(深層学習)
TensorFlow(テンソルフロー)とは、Googleが開発し、オープンソースで公開しているライブラリです。機械学習や数値解析、深層学習(ディープラーニング)などに対応しています。
TensorFlowは、もともとYouTubeやGoogle翻訳、音声検索などで使用していたDistBeliefというシステムを元に、使いやすくさまざまな業務で活用できることを目的に開発が進められました。
そのため、Googleが実際に提供しているサービスでも、TensorFlowが使われています。
わかりやすい例としては、画像検索やリアルタイム翻訳(画像から文字を識別して、自動で指定の言語に翻訳してくれるシステム)などでTensorFlowが活用されています。
TensorFlowは、Python以外にもJavaScriptやC言語などにも対応しており、コミュニティも活発です。そのため、深層学習を実装したアプリケーションの開発などには、TensorFlowが多く使われています。
TensorFlowについてもっと知りたい方は、以下の記事も参考にしてみてください。


また、上記以外にも便利なライブラリはたくさんあります。興味のある方は、こちらの記事でご紹介をしていますので、ぜひ目を通してみてください。

Python機械学習を学ぶのにおすすめの本
書籍の選び方と活用法
実際にPythonを使った機械学習を学びたい人のために、ここからはおすすめの書籍をご紹介します。
学習用書籍を選ぶ際には、以下のことに気をつけましょう。
- 数学の事前知識は必要な内容なのか(入門レベルか、中・上級者レベルか)
- サンプルデータがきちんと用意されているか
- 手を動かしながら学ぶことができるか
- 学習だけの内容ではなく、自分が興味を持てるか
- 学習を継続できるボリュームか
書籍を購入した後の学習ですが、1日に1章分ずつ終わらせていくような勉強ではなく、まずは一冊全部理解できなくても一度さらってしまうことが大切です。
1日に1章分づつやっていくということは思ったよりハードルが高いです。なぜなら毎日コンスタントに同じだけ勉強して、同じように継続していかなければいけないからです。波がない勉強には早い段階で飽きがきます。
そうならないために、いかに1冊終わらせて、2周目、3週目と繰り返してその書籍をマスターできるかがカギになってきます。終わらせた書籍が増えていくと自信にもなりますし、レベルアップが実感できるところもありと、メリットは大きいです。
スッキリわかるPython入門(プログラミング初心者向け)
プログラミング学習において定評のある「スッキリわかる」シリーズの内の1冊です。
プログラミング自体が初めての人を対象にかかれているので、非常にわかりやすく、Pythonに関する基礎知識を一通り理解するのに役立ちます。
また巻末には練習問題も載っているので、実際に手を動かしてプログラムを書いてみたい人にもおすすめです。
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎 (機械学習初心者向け)
オライリーシリーズも、プログラミング学習関連の書籍の中では、解説のわかりやすさに定評があります。
こちらは、機械学習初心者向けにかかれた書籍で、先ほど紹介したscikit-learnというライブラリを使って、実際にPythonで機械学習をプログラムする方法が解説されています。
著者自身がscikit-learnのリリースマネージャーと言うこともあり、機械学習の一般的なモデルを一通り網羅する内容になっていて、この一冊で機械学習に関する知識を十分に深めることができます。
Python機械学習クックブック(中級者向け)
先ほどと同じオライリーシリーズからの一冊。こちらは、機械学習を一通り学んだ人向けの内容になっています。
Pythonを使った機械学習を行う上で遭遇する200以上の問題とその解決策を網羅しているので、実際に機械学習の実装を行う際には、非常に役に立つ一冊です。
他にもおすすめの学習書籍がありますので、上記の3冊の中にピンとくるものがなかった人は、こちらの記事も参考にしてみて下さい。

Python機械学習の基礎を勉強するのにおすすめサイト
書籍ではなく、動画やスライドなどで学びたいという人には、学習サイトがおすすめです。
こちらでは、機械学習が学べる特におすすめの初心者向けサイトを2つをご紹介します。
Aidemy
AIに特化したプログラミング学習サイトです。ブラウザ上で直接コードを書いていくことができるので、面倒な環境設定がいりません。
図解やイラスト、動画などをつかったわかりやすい解説と体系的なカリキュラムが人気で、現在65,000人のユーザーがいます。
レッスンの一部は無料で公開されているので、お金をかけずに学習をするめることができます。
Udemy
Udemyは、オンラインコースのマーケットプレースです。低価格で専門家が教える授業動画を閲覧することができ、機械学習関連の授業だけでも、580件以上のコースが揃っています。(2020年6月現在)
Udemyのいいところは、「データ分析」「画像分析」「scikit-learn」「ニューラルネットワーク」など、興味がある特定の分野にフォーカスした学習が行えるところ。
入門編が充実しているので、初心者でも動画をみながら一緒にコーディングをしていくことができます。
おすすめの学習コンテンツをもっと知りたい方は、こちらの記事もチェックしてみてください。

Python機械学習の勉強に行き詰まったときの対処法
Python学習に限ったことではありませんが、プログラミングの勉強を続けていると必ずモチベーションの低下や、エラーの壁にぶつかってしまいます。
そうした時には、いつでも質問できる環境を整えたり、同じようにプログラミングを学習している人とつながったりすることで、スランプを抜け出すことができます。
QAサイトを使う
もしも自分で解決できないエラーが発生してしまったら、QAサイトを活用しましょう。
オンライン上には、エンジニアに特化したQAサイトがいくつかありますが、その中でも特におすすめなのが「Teratail(テラテイル)」です。
このように、キーワードを検索するだけで、数多くの関連Q&Aをチェックすることができます。
あなたが直面しているエラーに悩んでいる人は他にもいるはずなので、ここで検索をするだけで、解決方法を見つけることが可能です。
また、検索しても答えが見つからない場合は、質問を投稿することもできます。エンジニアも多く活用しているサイトなので、経験豊富なエンジニアがあなたの悩みにも答えてくれるはずです。
勉強会に参加する
Python学習を淡々と続けていると、
他のPython学習者はどんなことを勉強しているんだろう?
と、気になってくることがあります。
そんな時にはぜひ勉強会に参加してみることをおすすめします。
勉強会に参加することで、仲間ができてモチベーションをあげることができますし、今まで知らなかった知識などを得ることができて、刺激にもなります。
またこうした勉強会では、講師やメンターに質問することができ、自分の理解を一層深めることが可能です。
ひとくちに勉強会と言っても、講師を呼んで、特定のテーマについてみんなで学ぶ講演形式の勉強会から、「もくもく会」などと呼ばれるように、同じ言語を学んでいる人が一堂に集って一緒に開発を行うワークショップのようなものまで様々です。
こちらの記事で、勉強会やセミナーに関する情報をまとめていますので、興味のある方はぜひ目を通してみてくださいね。

コミュニティに参加する
Python学習で行き詰まってしまったら、オンライン上のコミュニティに参加するのもおすすめです。
こういったコミュニティにはエンジニアやプログラミング学習者が集っているので、自分と同じ悩みを抱えた人や、メンターとなる人を探すこともできます。
オンライン上のコミュニティとして特に定評があるのは、TECH LOGICS(テックロジックス)とPGColony(ピージーコロニー)です。
コミュニティへの参加に興味のある人は、こちらの記事に目を通してみてください。

Python・機械学習に強いスクールに通う【最もおすすめ】
Q&Aサイトを使えば、学習に躓いても解決策が見つかります。しかし、即座に回答を得られるわけではありません。
そこで活用したいのが「プログラミングスクール」です。プログラミングスクールなら悩みを即座に解決して、効率的に機械学習を学ぶことが出来ますよ。
侍エンジニアでは、現役エンジニアがマンツーマンであなたの機械学習を徹底的にサポートいたします。機械学習の基礎から応用的なスキルまでを身に付けて、あなたオリジナルのアプリを開発してみませんか?
弊社の無料体験レッスンでは、Pythonを効率よく学習する方法や、学習後のキャリアのご提案、なぜPythonを学ぶと市場価値が上がるのか?などのお話をさせて頂きます。お気軽にご利用ください。
まとめ
いかがでしたでしょうか?今回はPythonを使った機械学習入門完全攻略ガイドとして、機械学習の概要や、おすすめの学習サイト・書籍・ライブラリなどをご紹介してきました。
数ある教材の中から自分のレベルや目的に合ったものを選ぶのは至難の技です。学習方法を間違うと、遠回りになってしまったり、挫折してしまう原因にもなってしまいます。
この記事が機械学習を学んで、より良い未来を拓きたいあなたの手助けになれば幸いです。