機械学習に優れた言語「Python」を独学で習得する方法を紹介!
AI開発をする際、多くの方が選ぶプログラミング言語がPython。
言語としての機能性だけでなく、可読性やライブラリの充実など、あらゆる面で使い勝手の良い言語です。
とはいえ、Pythonをマスターしようとなると、
「数式を理解して覚えないといけない・・・?」
「高度な技術で学習するのが難しそう・・・」
このような悩みを抱えた方も多いと思います。
しかし、Pythonは人気の高いプログラミング言語で、最近では独学で習得しやすい環境も整いつつあるんです。
そこで今回「DMM WEBCAMP」では、将来性の高いPythonをマスターするために ①Pythonでできること ②学習の2ステップ ③実際の独学方法 ④独学を成功させるためのヒケツ について解説していきます。
機械学習に優れているPythonを習得したいという方は、ぜひ参考にしてみてください。
Pythonのできること
最初に、Pythonのできることについて確認しましょう。
主に得意な分野は主に3つで、「AI/機械学習」「データ分析・処理」「スクレイピング」等があります。
機械学習(AI)
Pythonは機械学習、いわゆるにAIによく使われていて、世界でも実績のある言語です。
AIや機械学習の分野でPythonが使われる一番の理由として、機械学習に使えるライブラリやフレームワーク(便利なコードやツール)が豊富であることが挙げられます。
AIや機械学習のプログラミングでは、従来難しい数学的な要素を習得してそれをコード化する必要がありました。
しかし今では、人工知能や機械学習に関する先人の知恵を機能化したライブラリを組み合わせることで、やりたいことをすぐに実践できるようになっています。
時には機械学習の手法を理解しておく事も大切ですが、より効率的に複雑なプログラムを書くためには、ライブラリやフレームワークを活用することも有効な手段の一つと言えます。
データ分析・処理
Pythonの醍醐味といえば、このデータ分析です。
具体的にいえば、物事の相関関係を調べることに優れています。
有名な例として、景気が良いほどサザエさんの視聴率が下がる、という統計結果があります。
これは景気が良いほど外出する機会が増え、家にいる時間が減るからだと言われています。
こういったものも、Pythonを使って調べることが可能なのです。
Pythonで独自に調査を行えるようになるので、市場調査を行えるマーケターになりたい方などはオススメです。
スクレイピング
スクレイピングとは、ウェブサイトから情報を取得し、取得した情報を加工する技術です。
スクレイピングと一緒に使われる技術にクローリング(複数ページの情報を収集する技術)がありますが、こちらもPythonで実装可能です。
例えば複数のWebページから商品データを集めて価格を比較できるような一覧にしたり、異なるニュースサイトから集めたい情報に関連する記事を抜き出して一覧にするようなことができます。
テキストだけでなく画像解析も進んでいるので、かなり注目されている分野です。
Pythonを習得する2ステップ
次に、Pythonを習得する流れについて紹介します。
基礎編と応用編に分けて、2ステップで見ていきましょう。
基礎編…基本的な記述方法、関数やクラス作成
まずは基礎編。
ここでは、プログラミングにおける基本について学びましょう。
プログラミング言語ごとに付けられる(あるいは付けやすい)機能がありますが、どの言語にも共通して使う機能も存在します。
ここがふんわりとした理解で進むと、いざデータ解析などの応用に入った時、どのコードが何の働きをしているのか分からなくなってしまいます。
もしあなたが別のプログラミング言語で「クラス」や「関数」を学習したことがあるなら、この基礎編はスキップしても良いでしょう。
教材でもいきなりデータ解析などを説明せず、どういう風にPythonで記述するのか教えてくれるからです。
少なくとも概念だけは押さえておけば、応用編に進んで大丈夫です。
応用編…データ解析、スクレイピングなどのPython特有な分野
応用編では、Pythonのできることで紹介した分野について学習していきます。
Pythonの教材はこちらをメインに取り扱っていることが多いので、自分が学びたい分野のものを教材として選ぶと良いでしょう。
もし最初に学ぶのなら、オススメはデータ解析です。
機械学習やスクレイピングの土台になる部分を学べますし、比較的扱いやすいからです。
以下でも基礎編と応用編に分けて紹介していきます。
本で学習する方法とサイト・アプリで学習する方法があるので、自分に合った方法を選んでみてください。
本での学習方法
基礎編:Pythonスタートブック[増補改訂版]
Pythonスタートブック[増補改訂版]
Pythonスタートブックは、小中学生でも読めるくらい簡易に書かれており、Pythonの入門書の中でも最も初級の参考書です。
プログラミング未経験者でも予備知識なく読み進めることができますが、逆に他の言語の経験者の場合には別の入門書の方が読みやすいかもしれません。
内容が丁寧すぎると感じるでしょう。
とにかくプログラミング未経験者におすすめしたい一冊です。
基礎編:みんなのPython 第4版
みんなのPython 第4版
みんなのPython 第4版は、Pythonの基本的な文法が網羅的に記述されています。
プログラミングが未経験であれば、前におすすめしたPythonスタートブックを読んでからこちらの本を読むことで、Pythonの基礎知識がすんなり身についていきます。
第4版で改良された点として、本書の最後の方の章にデータサイエンスや機械学習の概要に触れる章が追加されました。
入門の入門を脱してもっと網羅的に基礎を学び、さらなるステップアップをするための準備をしたいという方におすすめしたい一冊です。
注意点としては、かなりボリュームのある内容になっています。
あまり使わない関数なども紹介されているので、辞書程度に使うのが良いでしょう。
応用編:Pythonではじめる機械学習
本書は参考にできるサンプルコードもあり、基礎的な文法の学習を終えた後に、自分で機械学習の手法を理解したいという方におすすめです。
手法を文章で理解するよりも動かしながら理解していくスタンスで、機械学習に触れたことのない人でも腑に落ちやすい解説になっています。
各章で動かすサンプルは、Jupyter Notebookを使って動かしていきますので、あらかじめインストールしておくとズムーズに学習を始められます。
応用編:初めてのTensorFlow 数式なしのディープラーニング
機械学習のなかでも深層学習に特化したフレームワーク、TensorFlowを使った学習ができる参考書です。
こちらはディープラーニングに興味を持ったら最初に読むべき一冊です。
数式をできるだけ使わずに記述されていて、文系の方でも読み進めていくことができる点でおすすめです。
TensorFlowはGoogleが開発したディープラーニングの実装において世界中で最も有名で実績のあるフレームワークの一つです。
本書ではTesorFlowをより簡単に使えるようにしたTFLearnというライブラリを実際に用いることで実装の手法と結果を各例題ごとに見ながら学んでいくことができます。
応用編:Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理
Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理
Pythonでできることの章で紹介したNumPyやPandasと、Matplotlibを用いたデータ処理の解説をしています。
前の版では2系の記述でしたが、今の版でPython3に対応しました。
タイトルが「入門」となっているように、基本的なデータの扱い方や集計の手法が書かれています。
応用編:Pythonデータサイエンス
ライブラリの解説では、NumPyやPandasに加えて、機械学習アルゴリズムがそろったライブラリ、scikit-learnの基本的な使い方の解説があります。
対象はITエンジニアを想定して書かれているので、すでにほかの言語を習得していたり、データの扱い方や予備知識がすでにあるのであれば読んでみることをおすすめします。
Pythonを使用してデータサイエンスに入門する書籍で、データ集計や機械学習などの効率的なデータ分析手法実践的に習得することができます。
応用編:Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-
Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-
線形代数、統計、解析を行う Scrapy を使った実践的な開発ガイドです。
ウェブスクレイピングとクローリングに特化して解説しているため、スクレイピンクがやりたい方は興味をもって読み進めることができます。
対応OSがMacとLinuxになります。Windowsの場合はvagrantを使って仮想的にLinuxを動かすことになり、Linuxの操作が必要となります。
ターミナルでのコマンド操作等もあるのでshell操作が慣れていないと戸惑うこともあるかもしれません。ただ、親切な解説がありますので安心かと思います。
サイト・アプリでの学習方法
先ほどは本での独学について解説しましたが、次はサイト・アプリでの独学方法について紹介していきます。
サイト・アプリでは基礎編と応用編のどちらとも学習可能なため、特徴や料金をみながら自分に合っているものを選んでみてください。
Udemy
引用:Udemy
対象者
動画でコスパよく学習したい人
Udemyは世界中の講師が動画を投稿しているサービスです。
教材は買い切りのため、データ解析ができるようになる内容やスクレイピングをマスターできる内容など、教材ごとに「何ができるようになるのか」が明確に設定されています。
2万円ほどするコースも多く「普通に高くない・・・?」と思われる方も多いかもしれませんが、基本的にセール中に買うことで1,000~2,000円台で購入することができます。
ただし、カリキュラムによって当たり外れはあるので、必ず「評価の高いもの」を選ぶようにしましょう。
おすすめの教材は『現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル』と『【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 初級編 –』です。
どちらも評価の高く、初心者でもわかりやすい内容になっています。
PyQ
引用:PyQ
対象者
問題形式で学習を進めたい人
PyQはブラウザ内で手を動かしながら学習できるサービスです。
問題形式で進めていく内容なので、Progateをやったことがある人ならイメージしやすいかと思います。
Pythonでできることを全般的に学習することができるので「Pythonに特化して勉強したい!」という方には特におすすめです。
料金も3,040円/月(税込)からと良心的なので、手を動かしながら学習したい方はぜひ取り入れてみてください。
Aidemy
引用:Aidemy
対象者
動画(インプット)と演習(アウトプット)を繰り返して学習したい人
Aidemyは動画でのインプットと演習でのアウトプットを繰り返して学習できるサービスです。
ビジネスで使いたい人やデータサイエンティストとして活躍したい人向けのコースなど、様々なコンテンツが用意されています。
料金は他と比べてかなり高いですが、絶対にPythonの独学を成功させたい人には打ってつけ。
無料のコンテンツもあるので、興味があればそちらを学習してみることをおすすめします。
プログラミングの学習でよく使われる学習サイト『Progate』ですが、現時点でPythonの学習に利用するのはオススメできません。
なぜなら、学べる部分が基礎のみにだからです(2020年8月現在)。
プログラミングの基礎であるクラスや関数については学べるものの、スクレイピングやデータ解析に触れることはできません。
クラスや関数について全然理解ができていない場合以外は、Udemyなどの教材で学習を進めて良いでしょう。
挫折しやすいPythonを学ぶ前に覚えておきたい3つのこと
それじゃあ早速独学を始めよう・・・という前に、ぜひ意識しておきたい点があります。
これらを理解して進めるだけで、独学の成功率がぐっと高まるでしょう。
最後に意識してほしい点について、しっかり押さえていきましょう。
Pythonは初心者でも独学がしやすい言語
まず始めに理解しておいて欲しいのが、Pythonは全くプログラミングをやったことのない方にも分かりやすいおすすめの言語、ということです。
他のプログラミング言語に比べて文法がシンプルで、使えるライブラリ(処理を一かたまりにした部品)が豊富なため、簡単なコードを書くだけでプログラミングでやりたい事を実現することができます。
最近ではオフィシャル以外で日本語で解説しているサイトも充実してきており、わからないことがあればすぐ調べて問題を解決することも簡単にできるようになりました。
つまり、Pythonは欲しい機能を簡単に実現でき、独学で習得しやすい環境も整っているため、プログラミング未経験でも十分独学で習得していくことができます。
学習する目的を決めること
比較的独学がしやすい言語であることはお伝えしましたが、それでは一体何が独学の成功を妨げるのでしょうか。
それは、学習のモチベーションです。
いくら学びやすいとはいえ、学んでいることに興味が持てない、実現したいものがないという状況になると、学習する意欲は薄れていくでしょう。
途中で学習を挫折しないためには、Pythonを習得して叶えたい自分の中のゴールを探すことが大切です。
最初は文法など基本的なことを理解し、そのあとでゴールに近い文献や参考書を読み進めたり、他の人が書いたコードを見て書き方を学んだりしていきましょう。
そうすれば、広く浅く学習するよりずっと早く、より実務に近いコードが書けるようになります。
また、この目的意識はプログラミングの習得全般においても言えることです。
対象の言語にまず興味をもって接することを心がけてみましょう。
ゴールに合わせて学習方法をアレンジする
そうは言っても、学習のゴールをいきなり決めるというのは難しいものです。
特に知識のない状態で目標を決めるのは困難でしょう。
その場合は、目標は仮置きで構いません。
ひとまずデータ分析、あるいはスクレイピングできるのを目標にする。
その後に他の分野もやってみたいと思うのであれば、別で目標を設定すれば良いのです。
やることに迷って学ばないより、とりあえず学ぶ方が、確実に身になります。
まとめ
本記事では、Pythonを独学で学ぶための準備や初学者でも学べる参考書等を解説してきました。
Python は独学で習得しやすい環境もあり、比較的習得しやすい言語です。
Python で開発できる分野はたくさんある分、すべての分野を勉強するとなるとどんなに時間があっても足りません。
また、言語の学習を最後までするには対象の言語に興味をもって進めていくことが大切です。
本記事でご紹介した Python でできることの中に興味のあるものはありましたでしょうか。
興味ある分野で作りたいものをゴールに見据えて、学習を進めるようにしてください。