paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

機械学習初心者が、素早く学べるコンテンツとライブラリ20選(Python編)

f:id:paiza:20161205152422j:plain
Photo by Horia Pernea
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

最近機械学習に興味がある」「いつかやろうと思ってるんだよね……」と言うエンジニアの方をよく目にします。また、その倍ぐらい機械学習難しすぎて挫折した」という方も見ます。

弊社のITエンジニアにも機械学習を勉強中という人がいますが、特に最初は難しすぎて何から手を付けたらいいのかよく分からず、とても悩んだと言っていました。そこで同じような悩みを抱えている方の参考になればと思い、初心者の頃に参考になった機械学習入門者の方に役立ちそうな記事やスライドを聞いてきました。

また、Pythonには機械学習のためにデータを処理するライブラリ(数値演算をするためのライブラリや図を作成するためのライブラリなど……)がそろっていて、呼び出したり組み合わせて処理したり……といったことがしやすいため、多くの人が機械学習で使っています。コードも短くて読みやすいですし。(※Pythonはバージョン2系と3系があり、3系には後方互換性がない変更が入れられていますので「実務でPythonを使うことになった/なりそう」という方は、確認してから学習を始められるとよいかと思います。)

というわけで今回は、機械学習Pythonプログラミングに入門するときになるべくとっつきやすくて役に立つコンテンツ、そして機械学習によく使われているPythonライブラリを20件ご紹介していきます。

機械学習入門

◆1.機械学習をこれから始める人に押さえておいてほしいこと

http://qiita.com/IshitaTakeshi/items/4607d9f729babd273960
f:id:paiza:20151208175427p:plain
趣味で機械学習に手を出してみたい」という方に向けて、まずは丁寧なアドバイスや考え方が書かれている記事です。「やってみたいんだよな~」という方は、入門前にこういった記事を読んでみてはいかがでしょうか。

◆2.Machine Learning Advent Calendar 2015

http://qiita.com/advent-calendar/2015/machinelearning
f:id:paiza:20151208175505p:plain
今年の機械学習アドベントカレンダーです!2013年から続けられているので、以前のものを読んでみるのもよいかと思いますし、「いつかやろう……」と思っていた方は気持ちを新たに今年更新される記事を読んでみるのもよいかと思います。

◆3.機械学習チュートリアル

www.slideshare.net
「入門したいけどまだ入口すら見えない……」「数学に明るくない自分でもできるかな……」という方向けに、機械学習の概要が丁寧に説明されたスライドです。こちらは本当に「分かっている人」が「まだ分からない人」のために噛み砕いて説明している……という感じでありがたいです。

◆4.機械学習入門以前

www.slideshare.net
個人的にこのスライドとても好きです……。こちらも「入門すら難しい、入門以前の超入門編をくれ」というような我々向けのスライドです。機械学習の種類や体験の手順等についても触れられています。

◆5.機械学習Python との出会い

http://www.kamishima.net/mlmpyja/
f:id:paiza:20151201151807p:plain
いろいろな機械学習の手法を、Pythonで実装しながら学ぶことができるチュートリアルサイトです。科学技術計算モジュール(NumPyやSciPy等)の使い方が具体的に勉強できます。PDF化もされていまして、本当に無料でいいのかな……と思ってしまいます。

どちらかというと既にPythonが使えて機械学習の初歩も多少は分かっている人向けなので、勉強してみて「そろそろ入門者向けは脱出できるかな」というレベルに来た方におすすめです。

◆6.CourseraのMachine Learningコース

https://www.coursera.org/learn/machine-learning
f:id:paiza:20151208175604p:plain
Courseraというオンライン講座でスタンフォード大学の先生によるMachine Learningコースが受講できます。もちろん英語なのですが、無料で受講できる上、機械学習初心者の方にも好評です。英語OK!という方はぜひ!!

◆7.Weka入門 決定木とデータセットの作り方

http://www24.atpages.jp/antibayesian/weka/
f:id:paiza:20151208175643p:plain
Wekaは機械学習の計算をGUIの操作だけで行えるデータマイニングソフトです。こちらではWekaのインストール方法から決定木を作るチュートリアルが掲載されています。便利……。

Pythonプログラミングが学べるコンテンツ

◆8.Python公式ドキュメント(日本語訳)

料金:無料
http://www.python.jp/
f:id:paiza:20150407164816p:plain
Python公式ドキュメントを、有志の方々が順次日本語に翻訳してくださっています。これはありがたいですね、

環境構築の段階から、各OSごとにしっかりした解説があります。「いきなり公式ドキュメントなんて、ハードルが高そう」と思われるかもしれませんが、pythonチュートリアルはかなり親切です。
Python のセットアップと利用 — Python 3.5.3 ドキュメント
f:id:paiza:20150408150627p:plain

◆9.Python公式ドキュメント(本家)

料金:無料
https://www.python.org/
f:id:paiza:20150407164510p:plain
先にご紹介したのは有志の方々による日本語訳ですが、こちらはその原文、本家の公式ドキュメントです。翻訳される前の最新情報等も見ることができますので、英語がOKな方はこちらからご覧になってもよいかと思います。

◆10.ドットインストール

【Python2系】
料金:無料(プレミアム会員は月額880円)
http://dotinstall.com
f:id:paiza:20150204142015p:plain
動画でPythonプログラムの書き方や実行環境の作り方等が学べるドットインストールです。実際に独学でプログラミングを始めたという人の中には、とりあえずドットインストールから学習を始めたという方も多いです。「Python2系を学びたい」という方は、一度ドットインストールの動画を見てみてはいかがでしょうか。

◆11.Think Python

【Python2系】(3系の補足もあり)
料金:無料
http://manga.crocro.com/?cat=java&pg=index
f:id:paiza:20150407175133p:plain
英語OKな方にはThink Pythonもお勧めです。O'Reillyから紙の書籍としても出版されており、Kindle版もあります。(残念ながら日本語版はありません)

◆12.paiza.IO

【Python2系・3系に対応】
料金:無料
https://paiza.io/
f:id:paiza:20150205121058p:plain
paiza.IOは、ブラウザ上でコードが書け、書いたコードをその場で実行出来るオンラインプログラム実行環境です。面倒な環境構築なしに、例えば本に載っていたコード、ネット上で他の人が公開していたコード等をオンラインで実行して結果を見ることができます。ブログパーツとして使えたり、GitHub(Gist)連携なんかもできますので、ぜひpaiza.IOでどんどんコードを書いてみてください!

詳しくはこちらの記事をごらんください。


24のプログラミング言語がブラウザで即実行できる『paiza.IO』 - paiza開発日誌

◆13.paizaのスキルチェック問題

【Python2系】
料金:無料
http://paiza.jp
f:id:paiza:20150205133638p:plain
paizaでは、コーディングスキルをはかるコーディング問題の結果により、S・A・B・C・D・Eの6段階でランクが分かります。ぜひ問題を解いて、ランクアップを目指してみてください!プログラミング業務経験のない方でも、Dランクが取得できると、プログラミングの基礎的な概要は理解できているということになります。

機械学習に役立つPythonライブラリ

機械学習に使えるPythonのライブラリはものすごくたくさんありますが、それぞれ実装している機能が異なり、向いている処理等も違いますので、やりたいことによって使い分ける必要があります。ここでは主なもの、開発が活発なものをいくつかご紹介しておきます。

◆14.scikit-learn

http://scikit-learn.org/stable/documentation.html
f:id:paiza:20151208175732p:plain
scikit-learnは分類や回帰、クラスタリングなどの機能が実装されており、機械学習における定番となっています。

◆15.Theano

http://www.deeplearning.net/software/theano/
f:id:paiza:20151208175803p:plain
Theanoはディープラーニングライブラリの決定版?と言われております。行列演算などを行う関数が実装されています。

◆16.TensorFlow

https://www.tensorflow.org/
f:id:paiza:20151208175837p:plain
TensorFlowは、2015年11月にオープンソース化されたGoogle機械学習ライブラリです。

◆17.chainer

http://chainer.org/
f:id:paiza:20151208180131p:plain
chainerはニューラルネットワークを実装するためのライブラリです。日本人の方が中心となって開発されています。

◆18.PyML

http://pyml.sourceforge.net/
f:id:paiza:20151208175914p:plain
MLはMachineLearningの略です。SVM、再近傍法、リッジ回帰等が向いています。

◆19.Pylearn2

http://deeplearning.net/software/pylearn2/
f:id:paiza:20151208175946p:plain
機械学習向けライブラリのPylearn2は、画像の認識処理等が得意なライブラリです。

◆20.PyBrain

http://pybrain.org/
f:id:paiza:20151208180021p:plain
ニューラルネットワーク系に強いライブラリです。

■まとめ

機械学習を学ぶことは決して簡単なことではありませんが、例えばGoogleの情報検索やFacebookの友達かもしれない人を教えてくれる機能、Amazonの利用者が好きそうな商品を紹介してくれる機能は機械学習に基づいて作られています。自動車の自動運転などもそうですね。

今後も商業的システムにはますます機械学習が使われ、世の中をよりよくするためには必要不可欠な技術となっていくでしょう。そして、現時点では想像もつかないようなよりよいサービスが生まれていくことを期待しています。興味のわいた方はぜひ学んでみてください。

paiza動画ラーニングについて

f:id:paiza:20160307113923p:plain
paizaには、オンラインでプログラミング学習ができるパイザ・ラーニングという無料学習コンテンツがございます!現在、PHPRubyPythonの入門編を学ぶことができますが、対応言語は今後もどんどん追加される予定となっています。

プログラミング未経験の方でも、「やさしく・楽しく・わかりやすい1本約3分のレッスン動画」 や 「ブラウザ上でコードを書いて実行できるオンライン実行環境」「複数の練習問題」で、未経験者でも無理なく学習を続けることができます。




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
paiza.jp
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
paiza.jp
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza