71
103

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

データサイエンスを独学した1年間をまとめてみた。

Posted at

#1 はじめに
データサイエンスに興味をもった大学生が1年間の勉強の振り返りをする記事です!

ではさっそく本題に入ります!

#2 この記事の目的
① 自分の学習の整理
1年間くらいやっていると、今までどういった学習をしてきたか忘れてきます。
いったん整理し今後の勉強に活かしたいという想いからです。
なので主観的な表現が多く読みづらいかもしれません。
なにか質問・意見がございましたらコメントお願いします。

② 初学者の方に参考に!
シンニホンという書籍でも書かれていましたが、今後より多くの人がデータサイエンス学び始めると思います。
自分もこの本を読んで将来この分野で活躍したいと考え、学習を本格的にはじめました。
そこで初学者の方にこの記事を参考にしてもらえればなと考えました。
シンニホン.jpg

#3 勉強する上で意識したこと
① 証明できるスキルをつけること

資格は目標が見えやすく、モチベーションが保てるために取得をしようと考えました。
以下を参考にして、最低限の知識を習得したいと思い、最初の半年間で統計検定2級とG検定を取得しました。
今後はkaggleでのメダル獲得を考えています。

データサイエンティストが取得したい資格、概要や難易度、必要なスキルが学べる講座まで解説

② 理論を学ぶこと

データサイエンスの学習は特にブラックボックス化しやすいです。
時間をかけて勉強しているが全く理解が進んでいないということがないように気をつけました。

③ ローダマップを常に意識をする

特に初心者は挫折のリスクが高いと考え、逆算をして計画的に勉強をするためにロードマップを作成して学習をして来ました。

【2020年版・初心者向け】独学でAIエンジニアになりたい人向けのオススメの勉強方法
2020年版:実務の現場で求められるデータサイエンティスト・機械学習エンジニアのスキル要件
【独学可能】Python初心者のための機械学習に向けた学習ロードマップ

上記の3つの記事を参照し、データサイエンスに必要な知識は大きく5つにあると考え学習しました。

1.プログラミングスキル:pythonの基礎文法と機械学習の実装
2.数学:微分積分・統計学・線形代数
3.機械学習の理論
4.kaggle:データの前処理・特徴量エンジニアリング・分析の流れの一連の理解のため
5.その他:SQL・クラウドの知識など

SQLやクラウドの知識は自分がまだ勉強に手をつけられていないのでその他という形でまとめました。
今後力をいれて勉強をする予定です。

以下では主に1~4の分野に分けて振り返り記事を書いていきます!

#4 振り返り

0. はじめの1歩

初学者ならばここから勉強を始めた方が良いと思う本を3冊まとめました!

####① 人工知能は人間を超えるのか 

機械学習関連で一番有名な本かもしれません。G検定の推薦図書にもなっています。人工知能ってなに???となる方はまず読むべきです!
  人間を超える.jpg

####② 人工知能プログラミングのための数学がわかる本
数学が苦手の人でも読みやすく、数学が人工知能の中でどういった形で使われているのか、必要最低限のページでまとまっています。
自分は大学受験の勉強でわけもわからず微分しまくっていましたが、実際に数学が機械学習で使われているのをはじめて理解した時は感動しました。

初学者でもこのレベルの数学を抑えておかないと確実に機械学習の理論で詰まるのではやめに読むことをおすすめします!
  ための数学.jpg

####③ 機械学習エンジニアになりたい人のための本

上記の2つの本を読み、もっと勉強をしてみたいと思った方はぜひ読んでみて欲しいです!
必要な要素がわかりやすく書かれています!
  機械学習エンジニアになりたい人.jpg

1. プログラミング

大きく分けて2つのことを学びました。
** python**
 pythonを扱うための最低限の基礎文法(if文、ループなどの制御構文や、クラス・メソッド定義など)
** 機械学習の実装**
 scikit-leranというライブラリを用いて、理論に基づき実装

###python
####① 独学プログラマー

プログラミングの基礎を学ぶには良い本かと思いますが、どこまで学べば良いか判断出来ない初学者には難しすぎます。
pythonが本格的に必要になったら再度読み直したいと思います
  独学プログラマー.jpg
####② progate

プログラミング初学者といえばprogateですね!とりあえず2周してざっくり理解するのがおすすめです!
  progate.png

####③ PyQ

コースがいろいろある中で「未経験からのPython文法」コースという82時間かかるコースを一通りやりました。
環境構築が不要なため、すぐに勉強出来るのは初学者には嬉しいです。

ですがpythonの基礎文法であれば無料で学べる教材が多くあるなかで1ヶ月3000円がかかるのはちょっと高いかなとも感じました。
また、今振り返るとあまり使っていない文法がかなりあったのが残念な点です。
  pyq.jpg

####④ Tommmy blog

Tommyさんという産婦人科専門医の方のブログでPython入門者のための学習ロードマップ【ブログでも独学可能】がまとまっています。
無料でこのわかりやすさには感動しました!
初学者はとりあえずここを抑えておき、必要になったら追加で学んでいくのが理想だと思います。
####⑤ 【キカガク流】プログラミング力向上のためのPythonで学ぶアルゴリズム論(前編)

Udemyのキカガクさんの講座です。下記でも別の講座を紹介していますがキカガクさんの講座はどれも素晴らしいです!
初学者向けにそもそもプログラムってどっからコード書けばよいの??ということについての解説です。

  アルゴリズム論.jpg

###機械学習の実装
####① PyQ

上記では「未経験からのPython文法」コース紹介をしましたが、「データ分析」コースと「機械学習」コースの2つを2ヶ月かけて学習しました。

機械学習の実装は分厚い参考書が多いため挫折しやすいですが、こちらはインターネット上で学ぶことが出来ます。また説明が初学者向けだったのでpythonの基礎文法をつかんだ後に学習する教材として最適です。
####② かめさんのデータサイエンスブログ

米国でデータサイエンティストとして活躍されているかめさんという方のブログです。
米国データサイエンティストブログ

データサイエンスのためのPython入門の一連の記事は初心者には最適過ぎます!

こちらのブログでpythonの基礎文法,pandas,numpy,データの可視化まで学べるのは最高すぎます。
####③ pythonで始める機械学習

機械学習で学ぶ上でよくオススメ本に上がるオライリージャパンの本の1つです。

今だとこの本の良さがわかりますが、下記で紹介する機械学習の理論をしっかり理解してやらないと正直つまらないと思います。

  pythonではじめる機械学習 本.jpg

## 2. 数学
データサイエンスを学ぶ上で数学を理解することはすごく大切です。
特に大事なのは微分・統計・線形代数の3つだと思います。

ですが初学者が数学を学習することで挫折する確率が上がることから、数学をあまり使わずに機械学習を説明している教材も多くあります。
そのため初学者の優先順位はあまり高くなく、必要になったら学習することが良いかと思います。

自分は大学受験で微分は学習済みだったので、上記のプログラミングの学習を終えた後で線形代数と統計の学習をしました。

###線形代数
####線形代数キャンパスゼミ 

大学生が線形代数の単位を取るためのものであるため、線形代数の基礎を抑えるのに最適な教材です。

線形代数.jpg

###統計
####統計検定2級の勉強
データサイエンスの勉強を始めてから半年後くらいに合格をしました。
体系的に統計学の基礎を学ぶのは最適だと思います。
勉強法については別の記事でまとめました。気になる方はこちらを参照してください!

たったこれだけ!最短で統計検定2級に合格する方法
###3. 機械学習の理論
深層学習を除いた基本的な機械学習のアルゴリズムを理解することを優先しました。

####① 【キカガク流】人工知能・機械学習 脱ブラックボックス講座

Udemyのキカガクさんの講座です。初級編・中級編の2講座を学習しました。

線形代数や微分の復習を踏まえて、家賃の予測などの実際の問題に当てはめ最適化までの一連の流れを学ぶことが出来ます。またpythonでの演習もあります。

初心者向けの講座であり、Udemyの評価が高いことからもおすすめの講座です。
 初級変.jpg
  中級偏.jpg

####② cousera machine learning

初学者向けの講座としてよく取り上げられる動画教材です。無料で海外のトップレベルの講義が聴けること自体が貴重な体験でした。
難しい数式をあまり使っておらず、シンプルな説明でわかりやすかったです。
字幕が日本語でつけられるが、英語を理解しなければいけない点も多くあります。
またoctaveという謎の計算ツールを使って課題を提出しないといけない点はしんどかったです。
  machine learning.jpg

####③ 筑波大学オープンコースウェア

筑波大学が授業動画を公開をしているサイトです。
youtubeで講義を視聴することが可能となっています。
couseraよりもより深い内容が学びたいということで視聴をしました。
コチラの講座の方が日本語であることもあり、わかりやすく感じました。
数学の知識(特に線形代数と微分)が前提になっており、数式の証明も導出することから細かいところまで理解することが出来ました。ただ課題の解説が一部なかったのは残念でした。
  筑波大学.jpg 

④ G検定

G検定の詳細についてはコチラから!
初学者が1番最初の目標とするのにもってこいの資格だと思います。

couseraで機械学習については理解をしていたので、公式テキストで深層学習について理解をし、黒本と呼ばれる問題集とwebで受けられる予想問題集で問題演習をしました。

####1.ディープラーニング G検定(ジェネラリスト) 公式テキスト

おそらくこの試験を受ける人はほぼ全員が購入する参考書です。受験を決めたらすぐに購入しましょう!
シンプルにまとまっているので、合格後もよく確認をしてます。
g検定.jpg

####2.徹底攻略 ディープラーニングG検定 ジェネラリスト 問題集

黒本とも呼ばれている本です。
自分が受験をしたときに他に問題演習が出来るもの参考書がなかったため購入をしました。
試験の合否を測る1つの基準にはなりましたが、実際の試験と問題が異なっている部分も多いとも感じました。
g検定s.jpg

####3.G検定模擬テスト
人工知能勉強会の「Study-AI」さんが公開しているG検定の模擬テスト(過去問)です。

黒本よりかもこちらの模擬テストの方が本番の試験に似ていると感じました。

4. kaggle

一通り基礎を学び終えたら、実際にデータを扱うべきという記事が多くあったのでkaggleに挑戦することにしました。
英語で書かれた記事がメインで、海外の企業が主催するコンペが集まるデータサイエンティストのためのコンペサイトです。

日本ではsignateが有名です。
ですが、現時点ではkaggleの方が有名であることとコードや解法が公開されていることから初学者はkaggleから取り組む方が多いように感じます。

まだまだkaggleに取り組むための記事は書籍は少ない中で
完全初学者がKaggleの「入門」を高速で終えるためのおすすめ資料などまとめ(2019年12月版)を自分は特に参考にしました。
ここで紹介されている通りやればkaggleの入門は大丈夫でしょう!

今はさらに更新された記事が出ています!
機械学習初心者がKaggleの「入門」を高速で終えるための、おすすめ資料などまとめ(2020年3月版)

####① kaggleチュートリアル

初心者向けにkaggleのチュートリアルであるtitanicコンペを使って分析結果を提出するまでの一連の流れ学習することが出来ます。
  kaggle tyu.jpg

####② Kaggleに登録したら次にやること ~ これだけやれば十分闘える!Titanicの先へ行く入門 10 Kernel ~

kaggleチュートリアルと被る範囲もありましたが、どちらもやって正解でした。
テキストデータや画像データも一部扱っているため楽しく学習が出来ました。

####③ Python実践データ分析100本ノック

上記の2つをやればある程度kaggleの雰囲気はつかめると思います。
ですが、データ分析の一連の流れのうち一番時間がかかるのがデータの前処理です。
機械学習の理論でかっこいい理論を学んできましたが、前処理が出来ないとそのかっこいいアルゴリズムも無駄になってしまいます。
kaggleに対応しているわけではありませんが、pythonでテーブルデータをメインに前処理を題材に扱っている本があまりなかったのでこの本はとても貴重な本であると思います。
  python データ分析ノック.jpg

####④ kaggleで勝つデータ分析の技術

kaggleを扱った本が当時がコンペに出ようとしたときはこの本しかなかったため購入をしました。
titanicコンペしかやったことのない初学者には難しすぎると思いますが、実践をやることでしか上達しないなと覚悟を決めてコンペに取り組んでいます。

kaggle 出勝.jpg
####⑤ 実際のコンペに参加

実際にコンペに参加をするのが1番学習になるという声が多かったです。
まだまだ知識不足ですが、コンペに積極的に参加をしてメダルを獲得したいと思っています。

 

# 5 まとめ

###良かった点
1.モチベーションを高く保ち、勉強が続けられたこと
最初の2ヶ月くらいはわからないことだらけでしたが、慣れてきて勉強が楽しいと感じられています。
プログラミングスクールに通うことも視野に入れましたが、挫折しないために通うという甘い気持ちでは意味ないなと思い独学をしています。

2.最初からしっかりとした予定を立てず臨機応変に計画を立て勉強が出来た点
この記事を作成していても感じましたが、データサイエンスの分野は新しい参考書がかなり早いペースでています。
また学ぶべき範囲がとても多いため、最初のうちはなかなか計画通りは行かないと思います。
そのためロードマップで全体像は意識をしながら、月の最初にひと月の計画を立てて学習していました。

###反省点
1.1つ1つを完璧にしようとしすぎた
特にpythonの基礎文法に時間を使いすぎました。
完璧にしようとしすぎることのデメリットして
①どうせ忘れる無駄な知識に時間をかけてしまう  
②挫折率が高くなる
などがあげられると思います。

2.理論と実践のバランスが悪い
とりあえず理論をインプットしたらアウトプットすることでより勉強が楽しめると感じました。
初学者はインプット過多になりがちなので気をつけていきたいです。

###ちょっとした感想
1.続けることが難しい
特に最初の半年間は1日10時間ほど勉強をする日も多くありましたが、思ったよりも上達していないな~というのが一番の感想です。
「これからの時代はAIだ!」「deeeplearningってなんかかっこよさそう」みたいなモチベーションだと長く学習を続けることは不可能だと感じました。
機械学習エンジニアになりたい人のための本でも1年間~3年間と長い期間を見積もって勉強するべきとあるように結果がすぐに出る分野ではないということを踏まえた上で学習を進めるべきかなと思います。。

2.安価の素晴らしい教材を使うべき!
上記で紹介をしたblogは全て無料ですし、Qiitaでも学習の参考となるコンテンツは多くあります。udemyはセール時であれば1500円で質の高い講座を購入できます。
プログラミングスクールに通うことを検討している方もプログラミングスクールのAIコースやデータサイエンスコースはかなり高額なので、いったん基礎を学んだ上で通うかどうか判断するのが妥当かなと感じました。

#6 今後の抱負
1.kaggleでのメダルの獲得
2.今までの学びをアウトプットする

今後はこの2つをメインで頑張っていきたいと思います。
最後までご覧いただきありがとうございました!

71
103
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
71
103

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?