その前に、データサイエンスと機械学習がどのようなものかを知っておくと便利でしょう。そこで、知らない方のために、基本的な定義をご紹介します。
>
データサイエンスとは、構造化または非構造化された様々な形式のデータから知識や洞察を抽出するための科学的方法、プロセス、アルゴリズム、システムの学際的な分野である。
>
>
>
> >
> 機械学習は、コンピュータサイエンスの一分野であり、しばしば統計的手法を使用して、明示的にプログラムされることなく、コンピュータにデータで「学習」する能力を与えるものである。
>
>
>
Glassdoorは、データサイエンティストを平均給与12万ドル、求人数4500件以上(本記事執筆時点)で、アメリカの仕事ランキング1位としています。このような数字から、データサイエンスのキャリアに挑戦したい人がそれなりにいることは間違いなく、スキルアップのためのデータサイエンスに関するコースの需要も生まれている。
需要には供給が伴うため、オンラインやさまざまな教育機関で非常に多くのデータサイエンスや機械学習のコースが提供されているのはそのためです。そのため、データサイエンスや機械学習の学習を始めるにあたって、適切なコースを選択することがもう一つの課題となっています。
この数週間、私はUdemyで提供されているPython for Data Science and Machine Learning Bootcampというコースを受講しています。この記事では、このオンラインコースについての私の考えを紹介します。
インストラクター
このコースは、この分野で数年の経験を持つデータサイエンティストであり、Pierian Dataの創設者であるJose Portillaの作品です。Jose PortillaはUdemyのトップ講師の一人であり、50万人以上の受講生と15のコースを持っています。彼のコースのほとんどは、Python、ディープラーニング、データサイエンス、機械学習に焦点を当てており、PythonとRの両方を使用して後者の2つのトピックをカバーしています。
Jose Portillaは、機械工学のBSとMSを取得しており、いくつかの出版物と特許を所有しています。詳細については、Udemyのプロフィールをご覧ください。
対象読者
これはおそらく、どのコースでも最初に抱く疑問で、それが自分に合っているかどうかを知るためのものです。
機械学習とデータサイエンスは、数学とプログラミングの高度なトピックです。そのため、この概念を理解するためには、かなり急な学習曲線があります。
>
gt;初心者から上級者になることはできません。そのため、良い教材で学ぶことがより重要になります。
>
>
>
このコースでは、ある程度のプログラミングの経験が必要です。どの言語でも、データ構造、条件文など、プログラミングの中核となる概念を基本的に理解していることが重要です。このコースで使用するプログラミング言語であるPythonでの経験があることが望ましいでしょう。しかし、Pythonの知識は必須ではありません。コースはPythonクラッシュコースから始まり、Pythonを理解しコースについていけるようになります。
コンテンツレビュー
このコースは、私が出会った中で最も没頭できるコースの1つです。約150本の動画があり、動画の長さは21時間強にも及びます。このコースでは、Pythonのクラッシュコース、データ分析ライブラリの概要、データ可視化ライブラリの概要、機械学習アルゴリズムなど、多くのトピックについて学習者を徹底的に訓練していきます。
また、このコースでは、コードの共有に役立つJupyter NoteBooksを使用し、すべてのコードの記述と実行のための遊び場を提供します。
>
Jupyter NotebookはオープンソースのWebアプリケーションで、生きたコード、方程式、視覚化、説明テキストを含むドキュメントを作成し、共有することができます。用途は、データのクリーニングと変換、数値シミュレーション、統計モデリング、データの可視化、機械学習など多岐にわたります。
>
>
>
以下の章では、本講座の実際の内容を詳しく見ていきます。
Pythonクラッシュコース
コース名から、Pythonを使用してデータサイエンスと機械学習を探求する教材だと思われたでしょうから、驚きはありませんね。
Pythonクラッシュコースのセクションでは、Pythonプログラミング言語の基礎といくつかの初心者の概念から学びます。ミニクラッシュコースでは、データ型、条件演算子やステートメント、ループ、ラムダなど、いくつかのPythonの概念を通して学びます。
必要なPythonの知識のほとんどはこのセクションに含まれているので、このコースを受講する前にPythonの専門家であることを心配する必要はないでしょう。しかし、他の段階に進む前に、時間をかけて言語をよりよく理解することの重要性は、強調しすぎることはありません。そうすれば、プログラミング言語の細かい部分ではなく、機械学習の概念に集中することができます。
データ分析
データサイエンスを非常に簡単に説明すると、データセットから知識と洞察を抽出することである。データを処理し、そこから洞察や情報を抽出するためには、それを分析する能力が必要である。
ここで疑問が生じます。データ分析とは一体何なのでしょうか?
>
データ分析とは、有用な情報を発見し、結論を示唆し、意思決定を支援することを目的として、データを検査し、クレンジングし、変換し、モデル化するプロセスです。
>
>
>
データ分析がいかに重要であるかを理解するために、このコースでは、Pythonのいくつかのデータ分析ライブラリについて時間をかけて案内しています。
- NumPy。NumPy:Pythonのライブラリで、大規模な多次元配列と行列のサポート、およびこれらの配列を操作するための高水準の数学関数の大規模なコレクションを追加しています。
- Pandas:パンダ。Pandas: データ操作と解析のための Python ライブラリ。特に、数値表や時系列を操作するためのデータ構造と演算を提供します。
データビジュアライゼーション
データの可視化は、統計図形やプロット、インフォメーショングラフィックスなどを用いて、ユーザーに情報をわかりやすく、効率的に伝えるために重要です。
データビジュアライゼーションとは
データの可視化とは、データや情報を視覚的なオブジェクトとして符号化し、伝達するために使用される技術のことを指します。
>
>
>
このコースでは、Pythonのいくつかのデータ可視化ライブラリを使って、様々なデータセットに対する様々な可視化の作成方法を学習者に示します。このコースで学ぶ可視化ライブラリには以下のようなものがあります。
- Matplotlib。Matplotlib: Pythonの2Dプロットライブラリで、様々なハードコピー形式やプラットフォームでのインタラクティブな環境で、出版品質の図を作成することができます。
- Seaborn: Seaborn:matplotlibをベースにしたPythonの可視化ライブラリ。Seaborn: MatplotlibをベースにしたPythonの可視化ライブラリ。
- Pandas Pandas: 解析と可視化の両方の機能を持つデータライブラリ。
- Plotly。対話的な可視化ライブラリ。
- Cufflinks: PlotlyとPandasの接続を支援するライブラリ。
- 地理的プロット。地理データ可視化のための地図作成。
機械学習
このコースは第2部であり、学習者はいくつかの機械学習アルゴリズムを通して学ぶことになる。このコースでは、理論に関する説明、副読本、アルゴリズムのPython実装、アルゴリズムに関する演習、演習の解答など、学習者のアルゴリズム理解を助けるためのいくつかのステップを用意している。
本コースでは、教師あり学習、教師なし学習、強化学習という異なる種類の機械学習アルゴリズムについて幅広く学ぶことができる。
本講座で扱う機械学習アルゴリズムの一部を紹介する。
- 線形回帰。線形回帰:連続変数に基づく実数値の推定に使用される。
- ロジスティック回帰。ロジスティック回帰:与えられた独立変数のセットに基づいて、離散値を推定するために使用される。
- K Nearest Neighbour: kNN は、利用可能なすべてのケースを保存し、類似性測定に基づいて新しいケースを分類するシンプルなアルゴリズムです。
- 自然言語処理。自然言語処理:自然言語と音声の解析と合成に計算技術を適用すること。
- ニューラルネットとディープラーニング ニューラルネットは、人間の脳や神経系をモデル化したコンピュータシステムです。ニューラルネットとディープラーニング:人間の脳や神経系をモデル化したコンピュータシステムで、ニューラルネットで学習するための強力な技術群。
- サポートベクターマシン。サポートベクターマシン:分類と回帰の両方の課題に使用できる教師あり機械学習アルゴリズムです。
- K-Meansクラスタリング。K-Means Clustering: K-Means Clustering は、観測値をクラスタに分割し、各観測値が最も近い平均値を持つクラスタに属し、クラスタのプロトタイプとして機能するようにすることを目的としています。
その他、PythonによるビッグデータとSpark、主成分分析、レコメンダーシステムなどのアルゴリズムも扱います。
また、PythonのライブラリであるScikit-Learnライブラリは、非常に多くの機械学習アルゴリズムを実装しており、学習者はこのライブラリを使用することになります。これは基本的に、機械学習のためのPythonの「スイスアーミーナイフ」です。
良い点
このコースは素晴らしいです。コース内容が非常に多いので、復習するのに時間がかかりました。このコースでカバーされているコンセプトの数が多いため、詳細に説明するのに時間がかかるのです。
Pythonクラッシュコース
多くのコースの大きな欠点の1つは、受講者が必要なスタックを自力でレベルアップできると仮定していることです。このコースでは、Pythonのクラッシュコースを受講することで、ユーザーが快適にコースを進めることができ、コアマテリアルとは無関係な細部で悩むことがないように、そのチャンスを生かします。
詳細へ
このコースは、コンセプトを深く掘り下げていくことに躊躇しません。このコースでは、受講生がトピックを完全に把握できるように、重要なコンセプトを深く掘り下げることに時間をかけています。また、1つのコンセプトが複数のセクションに分かれていることもあり、コンセプトのすべてが完全に提供されることを保証しています。
また、学習者には、アルゴリズムに関する知識を深めるための追加教材が提供されます(オプション)。例えば、このコースでは、Gareth James著のIntroduction to Statistical Learningを関連書籍として使用しています。
注意事項
このコースでは、講師がコンテンツを進める際に画面に表示されるメモと、ビデオの前後でいくつかのコンセプトを説明するためのメモが、綿密に書き込まれています。このノートは、特に複雑なコンセプトについて、学習者のフォローアップを助けるために非常に重要です。
コードの共有 (Jupyter Notebook)
本講座では、ハンズオンのため、期間中、多くのコードが書き留められます。講師はJupyter Notebookを使用して、コースでカバーされるすべてのコードを共有します。コースには「リソースフォルダ」があり、各セクションのJupyter Notebooksが適切に配置されています。
これらのノートブックは、学習者が講義をより簡単に追えるように、また後でより実践的な練習をするためにコードにアクセスできるようにするために役立っています。
練習問題と解答
何かを学び、理解するための最良の方法は、実際にやってみることです。このコースは、新しい概念を学ぶ上で重要なステップであることを理解し、コースのほぼすべてのセクションにカスタム演習を用意しています。さらに、各セクションの練習問題に対する解答も提供しています。
これらの演習は、受講生がそのセクションで学んだ概念を内面化することを目的としています。機械学習のアルゴリズムについては、実世界のデータセットが提供され、学習した概念を使って解くことが要求される問題が出題されます。また、Kaggleのようなリソースを通じて、スキルを磨くためのデータセットを入手する手段も提供されます。
コミュニティ
オンラインコースを受講する際に最も困難なことの1つは、ブロッカーに遭遇することです。何の助けもなければ、コースのある時点で行き詰まり、さらに悪いことに、あるコンセプトを理解できないままになってしまいます。
Joseは、学習者がコース途中で直面する問題を互いに助け合うことができるよう、コースの周辺にコミュニティを作ることに取り組んできました。受講生がコースで直面する問題のほとんどは、実はコースのFAQにすでに掲載されており、受講生はより簡単に解決策を見つけることができるようになっています。
その1 良くないこと
Too Much Information
これは私の意見ですが、データサイエンスや機械学習のような複雑なトピックを学ぶレベルになると、おそらくすでにプログラミングの基本概念を理解しているはずで、このレベルのコースは基本概念の説明にそれほど時間をかけるべきではないでしょう。
しかし、このコースでは実践的なアプローチをとっているため、プログラミングの基本的な概念をたくさん説明することになり、結局多くの時間がかかってしまい、コースがさらに長くなっています。
結論
Python for Data Science and Machine Learning Bootcampは、本当に素晴らしいコースです。非常に詳細で、機械学習やデータサイエンスの問題に取り組み始めるための十分な準備ができるよう、多くのサポートがあります。
しかし、皆さんもご存知のように、習うより慣れろですから、このコースを受講しただけでは、業界が求める優秀なデータサイエンティストや機械学習エンジニアにはなれません。コース内の演習をこなし、さまざまなライブラリやアルゴリズムでさらに練習を重ね、一流を目指す必要があるのです。