たった 14 ステップ: Python 機械学習をゼロからマスターする (リソース付き)

たった 14 ステップ: Python 機械学習をゼロからマスターする (リソース付き)

Python は現在、機械学習で最も人気のある言語であると言っても過言ではなく、オンラインでも膨大なリソースを見つけることができます。あなたも Python で機械学習を始めようと考えていますか? このチュートリアルは、Python 機械学習を 0 から 1 まで習得し、成功に導くのに役立つかもしれません。1 から 100 までの機械学習の専門家になるには、あなた自身の努力次第です。

「始めること」は、多くの場合最も困難であり、特に選択肢が多すぎる場合は、決定を下すのが困難になることがよくあります。このチュートリアルの目的は、Python 機械学習の初心者が、ほとんどまたはまったく経験がない場合でも、無料で入手できる資料とリソースのみを使用して、知識豊富な実践者になれるように支援することです。この概要の主な目的は、利用可能な膨大な数のリソースを案内することです。世の中には間違いなくたくさんのリソースがありますが、どれが一番良いのでしょうか? どれが互いに補完し合うのでしょうか? そして、どのような順序で学習するのが最善なのでしょうか?

まず、あなたが以下の分野の専門家ではないと仮定します。

  • 機械学習
  • パイソン
  • Pythonの機械学習、科学計算、データ分析ライブラリ

もちろん、最初の 2 つのトピックについて基本的な理解があればよいのですが、必須ではなく、初期段階で少しだけ時間を費やすだけで十分です。

1. 基本

1. ステップ1: 基本的なPythonスキル

Python を使用して機械学習を実行する予定の場合は、Python の基本的な知識が不可欠です。幸いなことに、Python は広く使用されている汎用プログラミング言語であり、科学計算や機械学習への応用もされているため、初心者向けのチュートリアルを見つけるのは難しくありません。始めるには、Python とプログラミングの経験レベルが非常に重要です。

まず、Python をインストールする必要があります。後ほど科学計算および機械学習パッケージを使用するので、Anaconda をインストールすることをお勧めします。これは、Linux、OS X、Windows で利用できる強力な Python 実装であり、numpy、scikit-learn、matplotlib など、機械学習に必要なパッケージが完備されています。また、多くのチュートリアルで使用されるインタラクティブな環境である iPython Notebook も含まれています。 Python 2.7 をインストールすることをお勧めします。

プログラミングを知らない場合は、後続の資料に進む前に、次の無料オンラインブックから始めることをお勧めします。

  • Python を難しい方法で学ぶ (Zed A. Shaw 著): https://learnpythonthehardway.org/book/

プログラミング経験はあるが Python を知らない、またはまだ基本的なレベルである場合は、次の 2 つのコースを受講することをお勧めします。

  • Google Developer Python コース (視覚的に学習する方に強くおすすめ): http://suo.im/toMzq
  • Python による科学計算入門 (UCSB エンジニアリングの M. Scott Shell 氏による) (優れた入門書、約 60 ページ): http://suo.im/2cXycM

30 分間の簡単な Python チュートリアルが必要な場合は、こちらをご覧ください。

  • Y 分で X (X=Python) を学ぶ: http://suo.im/zm6qX

もちろん、すでに経験豊富な Python プログラマーであれば、この手順をスキップできます。それでも、常に Python ドキュメントを使用することをお勧めします: https://www.python.org/doc/

2. ステップ2: 基本的な機械学習スキル

KDnuggets の Zachary Lipton 氏は、現在では「データ サイエンティスト」を評価するためのさまざまな基準が存在すると指摘しています。これは実際には機械学習の分野を反映したもので、データ サイエンティストが行う作業の大半は、程度の差こそあれ機械学習アルゴリズムを使用することです。サポート ベクター マシンを効果的に作成し、そこから洞察を得るためには、カーネル メソッドを熟知している必要がありますか? もちろん、そうではありません。人生のほとんどすべてのことと同様に、理論の習得の深さは実際の応用に結びついています。機械学習アルゴリズムを深く理解することはこの記事の範囲を超えており、通常は、より学術的なコースに多大な時間を費やすか、少なくとも自分で集中的に自習する必要があります。

幸いなことに、機械学習の理論を理解して実践するためには、博士号は必要ありません。つまり、有能なプログラマーになるためにコンピューターサイエンスの理論を学ぶ必要はありません。

Coursera の Andrew Ng の機械学習コースの内容については、多くの人が絶賛する傾向がありますが、私のアドバイスは、元学生がオンラインで取った講義ノートを閲覧することです。 Octave (Python の学習とは無関係な Matlab のような言語) に固有のメモはスキップしてください。これらは公式のノートではないことを理解することが重要ですが、Andrew Ng のコース教材の関連コンテンツを把握するのに役立ちます。もちろん、時間と興味があれば、Coursera で Andrew Ng の機械学習コースを今すぐ受講できます: http://suo.im/2o1uD

  • Andrew Ng のコースの非公式ノート: http://www.holehouse.org/mlclass/

上記の Andrew Ng コースに加えて、他に必要なものがあれば、インターネット上には選択できる他のコースが多数あります。たとえば、私はトム・ミッチェルが大好きです。こちらは彼の最近のスピーチのビデオです(マリア・フロリナ・バルカンも一緒に)。とてもわかりやすいです。

  • Tom Mitchell の機械学習コース: http://suo.im/497arw

この時点では、すべてのメモやビデオは必要ありません。役に立つアプローチとしては、上記の注記とビデオの適切な部分を参照して、適切と思われるときに、以下の特定の演習に直接進むことです。

3. ステップ3: 科学計算用Pythonパッケージの概要

さて、Python プログラミングを習得し、機械学習についてある程度理解することができました。 Python 以外にも、実際の機械学習を実行するためによく使用されるオープンソース ソフトウェア ライブラリがいくつかあります。大まかに言えば、基本的な機械学習タスクを実行するために使用できる、いわゆる科学的 Python ライブラリがいくつかあります (これは確かに多少主観的です)。

  • numpy - 主に N 次元配列オブジェクトに役立ちます http://www.numpy.org/
  • pandas - データフレームなどの構造を含む Python データ分析ライブラリ http://pandas.pydata.org/
  • matplotlib - 出版品質のグラフを作成する 2D プロット ライブラリ http://matplotlib.org/
  • scikit-learn - データ分析とデータマイニングのための機械学習アルゴリズム http://scikit-learn.org/stable/

これらのライブラリを学ぶ良い方法は、次の資料を研究することです。

  • Gaël Varoquaux、Emmanuelle Gouillart、Olav Vahtras による Scipy 講義ノート: http://www.scipy-lectures.org/
  • このパンダのチュートリアルも非常に優れています: 10 Minutes to Pandas: http://suo.im/4an6gY

このチュートリアルの後半では、matplotlib に基づくデータ視覚化ライブラリである Seaborn など、他のパッケージについても説明します。上記のパッケージは、Python 機械学習でよく使用されるコアライブラリのほんの一部ですが、これらを理解しておけば、後で他のパッケージに遭遇したときに混乱することがなくなります。

さあ始めましょう!

4. ステップ4: Pythonで機械学習を学ぶ

まず準備状況を確認する

  • Python: 準備完了
  • 機械学習の基礎: 入門
  • Numpy: 準備完了
  • パンダ:準備完了
  • Matplotlib: 準備完了

ここで、Python 機械学習標準ライブラリである scikit-learn を使用して機械学習アルゴリズムを実装します。

scikit-learn フローチャート

以下のチュートリアルと演習の多くは、Python ステートメントを実行するためのインタラクティブな環境である iPython (Jupyter) Notebook を使用して行われます。 iPython Notebook はオンラインで簡単に見つけたり、ローカル コンピューターにダウンロードしたりできます。

  • スタンフォード大学の iPython Notebook の概要: http://cs231n.github.io/ipython-tutorial/

また、次のチュートリアルは一連のオンライン リソースで構成されていることに注意してください。コースに不適切な点があると思われる場合は、作成者と連絡を取ることができます。最初のチュートリアルは scikit-learn から始まります。チュートリアルを続ける前に、以下の記事を順番に読むことをお勧めします。

以下は、Python で最も一般的に使用されている一般的な機械学習ライブラリである scikit-learn を紹介し、K 最近傍アルゴリズムを解説した記事です。

  • Jake VanderPlas による scikit-learn の紹介: http://suo.im/3bMdEd

以下は、よく知られたデータベースを使用してプロジェクトを開始する方法について説明した、より詳細で拡張された紹介です。

  • Randal Olson の機械学習ケースノート: http://suo.im/RcPR6

次の投稿では、トレーニング/テスト セットの分割など、scikit-learn でさまざまなモデルを評価するための戦略に焦点を当てます。

  • Kevin Markham のモデル評価: http://suo.im/2HIXDD

5. ステップ5: Pythonで基本的な機械学習アルゴリズムを実装する

scikit-learn の基本的な知識があれば、より一般的で実用的なアルゴリズムをさらに探求することができます。まず、よく知られている k-means クラスタリング アルゴリズムから始めます。これは、教師なし学習の問題に適した非常にシンプルで効率的な方法です。

  • K平均法クラスタリング: http://suo.im/40R8zf

次に、分類問題に戻り、最も人気のある分類アルゴリズムを学びます。

  • 決定木: http://thegrimmscientist.com/tutorial-decision-trees/

分類問題を理解した後、連続的な数値予測について引き続き見ていきます。

  • 線形回帰: http://suo.im/3EV4Qn

回帰の考え方を分類問題、つまりロジスティック回帰に適用することもできます。

  • ロジスティック回帰: http://suo.im/S2beL

6. ステップ6: Pythonで高度な機械学習アルゴリズムを実装する

scikit-learn について理解できたので、次はより高度なアルゴリズムに進みます。 1 つ目はサポート ベクター マシンです。これは、データを高次元空間にマッピングすることに依存する非線形分類器です。

  • サポートベクターマシン: http://suo.im/2iZLLa

次に、Kaggle Titanic コンペティションを通じて、ランダム フォレストをアンサンブル分類器として学習する方法を調べます。

  • Kaggle タイタニック コンペティション (ランダム フォレストを使用): http://suo.im/1o7ofe

次元削減アルゴリズムは、問題で使用される変数の数を削減するためによく使用されます。主成分分析は、教師なし次元削減アルゴリズムの特殊な形式です。

  • 次元削減アルゴリズム: http://suo.im/2k5y2E

ステップ 7 に進む前に、比較的短期間で達成した進歩について少し考えてみましょう。

Python とその機械学習ライブラリから始めて、最も一般的でよく知られている機械学習アルゴリズム (k 近傍法、k 平均法クラスタリング、サポート ベクター マシンなど) のいくつかを学習しただけでなく、強力なアンサンブル手法 (ランダム フォレスト) といくつかの追加の機械学習タスク (次元削減アルゴリズムとモデル検証手法) も学習しました。いくつかの基本的な機械学習技術に加えて、いくつかの便利なツールキットの検討も始めました。

今後、必要な新しいツールを学習していきます。

7. ステップ7: Pythonによるディープラーニング

ニューラルネットワークは多くの層から構成される

ディープラーニングはあらゆるところに存在します。ディープラーニングは数十年前に遡るニューラルネットワークの基礎の上に構築されていますが、近年の進歩は数年前に始まり、ディープニューラルネットワークの認知能力が大幅に向上し、幅広い関心を集めています。ニューラル ネットワークを初めて知る場合は、KDnuggets に、ディープラーニングに関する最近のイノベーション、成果、称賛について詳しく説明した記事が多数掲載されています。

この最後のステップでは、すべてのタイプのディープラーニングを確認するのではなく、最先端の最新の Python ディープラーニング ライブラリ 2 つでいくつかのシンプルなネットワーク実装を検討します。ディープラーニングをさらに深く知りたい読者には、まず以下の無料オンライン書籍から始めることをお勧めします。

ニューラル ネットワークとディープラーニング、マイケル ニールセン著: http://neuralnetworksanddeeplearning.com/

(1)テアノ

リンク: http://deeplearning.net/software/theano/

Theano は、ここで最初に紹介した Python ディープラーニング ライブラリです。 Theano の著者が何と言ったか見てみましょう:

Theano は、多次元配列を含む数式を効率的に定義、最適化、評価できる Python ライブラリです。

Theano を使用したディープラーニングの入門チュートリアルは少し長いですが、十分に優れており、鮮明で、高く評価されています。

  • Colin Raffel による Theano ディープラーニング チュートリアル: http://suo.im/1mPGHe

(2)カフェ

リンク: http://caffe.berkeleyvision.org/

私たちがテストするもう一つのライブラリは Caffe です。もう一度、著者から始めましょう:

Caffe は、表現力、スピード、モジュール性に基づいて構築されたディープラーニング フレームワークです。Bwekeley Vision and Learning Center とコミュニティ ワーカーによって開発されました。

このチュートリアルはこの記事の中で最高のものです。上記では興味深い例をいくつか見てきましたが、Caffe を通じて Google の DeepDream を実装する次の例に匹敵するものはありません。これはかなりすごいですね! チュートリアルをマスターしたら、プロセッサを実際に動かして楽しんでみてください。

  • Caffe 経由で Google DeepDream を実装する: http://suo.im/2cUSXS

これが早く簡単にできるとは約束できませんが、時間をかけて上記の 7 つの手順を完了すれば、幅広い機械学習アルゴリズムを理解し、現在ディープラーニング研究で使用されている最先端のライブラリを含む一般的なライブラリを使用して Python で実装できるようになります。

2. 上級

機械学習アルゴリズム

これは、Python で機械学習をマスターするための 7 つのステップに関する一連の記事の 2 番目です。シリーズの前の記事を学習している場合は、満足のいく学習速度と習熟度を達成しているはずです。そうでない場合は、前の記事を復習することをお勧めします。費やされる具体的な時間は、現在の理解度によって異なります。きっと価値があると約束します。この簡単なレビューの後、この投稿では機械学習関連のタスクのいくつかのセットにさらに明確に焦点を当てます。 Python の基礎、機械学習の基礎など、いくつかの基礎を安全にスキップしたので、さまざまな機械学習アルゴリズムに直接進むことができます。今回は、チュートリアルを機能別に分類できるようになりました。

ステップ1: 機械学習の基礎と新たな視点の復習

最初の部分には次の手順が含まれます。

1. Pythonの基本スキル

2. 基本的な機械学習スキル

3. Python パッケージの概要

4. Python での機械学習入門: 導入とモデル評価

5. Python での機械学習のトピック: k-means クラスタリング、決定木、線形回帰、ロジスティック回帰

6. Python での高度な機械学習のトピック: サポート ベクター マシン、ランダム フォレスト、PCA 次元削減

7. Python でのディープラーニング

前述の通り、最初から読み始める場合は、第1部から順番に読むことをおすすめします。初心者向けの入門資料もすべてリストします。インストール手順は前の記事に記載されています。

ただし、すでに読んでいる場合は、以下の基本から始めます。

  • Matthew Mayo による、機械学習の主要用語の説明。アドレス: http://suo.im/2URQGm
  • Wikipedia の記事: 統計分類。アドレス: http://suo.im/mquen
  • 機械学習: 完全かつ詳細な概要、Alex Castrounis 著。アドレス: http://suo.im/1yjSSq

機械学習の基礎を学ぶための代替または補完的な方法を探しているなら、私が現在視聴している Shai Ben-David のビデオ講義と Shai Shalev-Shwartz の教科書をお勧めします。

  • ウォータールー大学の Shai Ben-David による機械学習入門ビデオ講義。アドレス: http://suo.im/1TFlK6
  • Shai Ben-David と Shai Shalev-Shwartz 著『機械学習を理解する: 理論からアルゴリズムまで』アドレス: http://suo.im/1NL0ix

覚えておいてください、私が書いているシリーズを始める前に、この入門資料をすべて読む必要はありません。機械学習アルゴリズムを使用してモデルが実装されるとき、または適切な概念が後続のステップで実際に適用されるときに、ビデオ講義、教科書、およびその他のリソースが利用可能になります。具体的な状況はご自身で判断してください。

ステップ2: さらなる分類

まず新しい資料から始め、分類手法を統合し、いくつかの追加アルゴリズムを導入します。この記事の最初の部分では、決定木、サポート ベクター マシン、ロジスティック回帰、合成分類ランダム フォレストについて説明しましたが、k 近傍法、単純ベイズ分類器、多層パーセプトロンについても追加します。

Scikit-learn 分類器

k-近傍法 (kNN) は、すべての計算が分類時に (トレーニング ステップ中に事前に行われるのではなく) 実行される、単純な分類器と遅延学習器の例です。 kNN は非パラメトリックであり、データ インスタンスを k 個の最も近いインスタンスと比較して分類する方法を決定します。

  • Python を使用した k 最近傍分類。アドレス: http://suo.im/2zqW0t

ナイーブベイズはベイズの定理に基づいた分類器です。これは、機能間に独立性があり、クラス内の特定の機能の存在は同じクラス内の他の機能の存在とは独立していると想定しています。

  • Scikit-learn を使用したドキュメント分類 (Zac Stewart 著)。アドレス: http://suo.im/2uwBm3

多層パーセプトロン (MLP) は、複数のノード層で構成される単純なフィードフォワード ニューラル ネットワークであり、各層は後続の層に完全に接続されています。多層パーセプトロンは、Scikit-learn バージョン 0.18 で導入されました。

まず、Scikit-learn のドキュメントから MLP 分類器の概要を読み、次にチュートリアルを使用して実装を練習します。

  • ニューラル ネットワーク モデル (教師あり)、Scikit-learn ドキュメント。アドレス: http://suo.im/3oR76l
  • Python と Scikit-learn 0.18 を使用したニューラル ネットワークの初心者向けガイド。著者: Jose Portilla。アドレス: http://suo.im/2tX6rG

ステップ3: さらなるクラスタリング

次に、教師なし学習の一種であるクラスタリングについて説明します。前回の記事では、k-means アルゴリズムについて説明しました。ここでは、DBSCAN と期待値最大化 (EM) について紹介します。

Scikit-learn クラスタリング アルゴリズム

まず、以下の入門記事を読んでください。最初の記事は、k-means と EM クラスタリング手法の簡単な比較で、新しい形式のクラスタリングへの良い導入となっています。2 番目の記事は、Scikit-learn で利用できるクラスタリング手法の概要です。

  • クラスタリング手法の比較: 簡潔な技術概要、Matthew Mayo 著。アドレス: http://suo.im/4ctIvI
  • おもちゃのデータセットでのさまざまなクラスタリング アルゴリズムの比較、Scikit-learn ドキュメント。アドレス: http://suo.im/4uvbbM

期待最大化 (EM) は確率的クラスタリング アルゴリズムであり、インスタンスが特定のクラスターに属する確率を決定します。 EM は、統計モデル (Han、Kamber、Pei) のパラメータの最大尤度または最大事後推定に近いものです。 EM 手順は、一連のパラメータから開始され、k 個のクラスターに関してクラスタリングが最大化されるまで反復されます。

まず、EM アルゴリズムのチュートリアルを読んでください。次に、関連する Scikit-learn ドキュメントを確認します。最後に、チュートリアルに従って、Python を使用して EM クラスタリングを自分で実装します。

  • Elena Sharova による期待最大化 (EM) アルゴリズムに関するチュートリアル。アドレス: http://suo.im/33ukYd
  • ガウス混合モデル、Scikit-learn ドキュメント。アドレス: http://suo.im/20C2tZ.
  • Tiago Ramalho による、Python でガウス混合モデルを構築するための簡単な入門書です。アドレス: http://suo.im/4oxFsj

ガウス混合モデルが最初はわかりにくいように思われる場合は、Scikit-learn ドキュメントのこの関連セクションを読むと、余分な懸念が軽減されるはずです。

ガウス混合オブジェクトは、ガウスモデルの混合を適合するための期待値最大化 (EM) アルゴリズムを実装します。

密度ベースのノイズ付き空間クラスタリング アプリケーション (DBSCAN) は、密度の高いデータ ポイントをグループ化し、密度の低いデータ ポイントを外れ値として指定することによって動作します。

まず、Scikit-learn のドキュメントから DBSCAN の実装例を読んで従い、次に簡潔なチュートリアルに従ってください。

  • DBSCAN クラスタリング アルゴリズムのデモンストレーション、Scikit-learn ドキュメント。アドレス: http://suo.im/1l9tvX
  • 密度ベースのクラスタリング アルゴリズム (DBSCAN) と実装。アドレス: http://suo.im/1LEoXC

ステップ4: その他の統合方法

前回の記事では、ランダム フォレスト (RF) という単一のアンサンブル メソッドのみを取り上げました。 RF は過去数年間、トップクラスの分類器として大きな成功を収めてきましたが、唯一のアンサンブル分類器ではありません。パッケージング、プロモーション、投票について見ていきます。

私を応援して

まず、これらのアンサンブル学習者の概要を読んでください。最初のものは一般的な概要で、2 番目のものは Scikit-learn に関連しています。

  • マシュー・メイヨー著『アンサンブル学習者入門』。アドレス: http://suo.im/cLESw
  • Scikit-learn のアンサンブル メソッド、Scikit-learn のドキュメント。アドレス: http://suo.im/yFuY9

次に、新しいアンサンブル手法に進む前に、新しいチュートリアルでランダム フォレストについて簡単に学習します。

  • Yhat による Python のランダム フォレスト。アドレス: http://suo.im/2eujI

パッキング、ブースティング、投票はすべて、複数のモデルの構築を伴うアンサンブル分類器のさまざまな形式ですが、これらのモデルの構築に使用されるアルゴリズム、モデルで使用されるデータ、および結果が最終的に結合される方法は、ソリューションごとに異なります。

  • ラッパー: トレーニング セットから異なる (独立した) データ サンプルを使用しながら、同じ分類アルゴリズムから複数のモデルを構築します - Scikit-learn はラッパー分類器を実装します
  • ブースティング: 同じ分類アルゴリズムから複数のモデルを構築し、モデルを次々に連鎖させて後続の各モデルの学習を改善する - AdaBoost の Scikit-learn 実装
  • 投票: 異なる分類アルゴリズムから複数のモデルを構築し、基準を使用してモデルを最適に組み合わせる方法を決定します - Scikit-learn は投票分類器を実装します

では、なぜアンサンブル モデルなのでしょうか? 特定の角度からこの問題にアプローチするために、Scikit-learn のドキュメントから、ブースティングに特に関連するバイアスと分散のトレードオフの概要を示します。

  • 単一推定器とラッパー: バイアス-分散分解、Scikit-learn ドキュメント。アドレス: http://suo.im/3izlRB

アンサンブル学習器に関する入門資料を読み、いくつかの特定のアンサンブル分類器の基本を理解したところで、Machine Learning Mastery の Scikit-learn を使用して Python でアンサンブル分類器を実装する方法を説明します。

  • Jason Brownlee 著「Python で Scikit-learn を使用したアンサンブル機械学習アルゴリズム」アドレス: http://suo.im/9WEAr

ステップ5: 勾配ブースティング

次に、アンサンブル分類器の研究を続け、現在最も人気のある機械学習アルゴリズムの 1 つを探ります。勾配ブースティングは最近、機械学習に大きな影響を与え、Kaggle コンペティションで最も人気があり成功したアルゴリズムの 1 つになりました。

グラデーションブーストをください

まず、勾配ブースティングの概要を読んでください。

  • Wikipedia のエントリ: 勾配ブースティング。アドレス: http://suo.im/TslWi

次に、勾配ブースティングが Kaggle コンペティションで「最も勝利する」方法である理由を学びます。

  • なぜ勾配ブースティングは多くの Kaggle の問題を完璧に解決できるのでしょうか? Quora、アドレス: http://suo.im/3rS6ZO
  • Kaggle マスターが勾配ブースティングとは何かを説明します (Ben Gorman 著)。アドレス: http://suo.im/3nXlWR

Scikit-learn には勾配ブースティングの独自の実装がありますが、これを少し変更して、より高速な実装である XGBoost ライブラリを使用します。

次のリンクには、XGBoost ライブラリと勾配ブースティング (必要な場合) に関する追加情報が提供されています。

  • Wikipedia エントリ: XGBoost。アドレス: http://suo.im/2UlJ3V
  • Ghub 上の XGBoost ライブラリ。アドレス: http://suo.im/2JeQI8
  • XGBoost のドキュメント。アドレス: http://suo.im/QRRrm

次に、次のチュートリアルに従ってすべてをまとめます。

  • Jesse Steinweg-Woods による、Python での XGBoost 勾配ブースティング ツリーの実装ガイド。アドレス: http://suo.im/4FTqD5

以下のより簡潔な例に従って強化することもできます。

  • Kaggle の XGBoost の例 (Python)。アドレス: http://suo.im/4F9A1J
  • Ieva Zarina による Iris データセットと XGBoost に関する簡単なチュートリアル。アドレス: http://suo.im/2Lyb1a

ステップ6: さらなる次元削減

次元削減とは、主変数のセットを取得するプロセスを使用して、モデル構築に使用される変数を初期数から削減された数に削減するプロセスです。

次元削減には主に 2 つの形式があります。

  • 1. 特徴選択 – 関連する特徴のサブセットを選択します。アドレス: http://suo.im/4wlkrj
  • 2. 特徴抽出 - 有益で冗長性のない派生価値特徴のセットを構築します。アドレス: http://suo.im/3Gf0Yw

以下は、一般的に使用される特徴抽出方法のペアです。

主成分分析 (PCA) は、直交変換を使用して、相関している可能性のある変数の観測値のセットを、主成分と呼ばれる線形に相関していない変数値のセットに変換する統計手順です。主成分の数は、元の変数の数以下です。この変換は、最初の主成分が可能な限り最大の分散を持つように定義されます(つまり、データの変動性を可能な限り考慮します)。

上記の定義は PCA の Wikipedia エントリからの引用ですが、興味があればさらに詳しく読むことができます。ただし、次の概要/チュートリアルは非常に詳細です。

  • 主成分分析: 3 つの簡単なステップ、Sebastian Raschka 著。アドレス: http://suo.im/1ahFdW
線形判別分析 (LDA) は、フィッシャーの線形判別分析を一般化したもの、つまり統計、パターン認識、機械学習で、特徴の線形結合、または 2 つ以上のオブジェクトまたはイベントのクラスを分離する特徴を見つけるために使用される方法です。結果として得られる組み合わせは、線形分類器として、またはより一般的には、後続の分類の前の次元削減として使用できます。

LDA は、分散分析 (ANOVA) や回帰分析と密接に関連しており、これらも従属変数を他の特徴や測定値の線形結合として表そうとします。ただし、ANOVA ではカテゴリ独立変数と連続従属変数が使用されるのに対し、判別分析では連続独立変数とカテゴリ従属変数 (クラス ラベルなど) が使用されます。

上記の定義もWikipediaからの引用です。全文はこちらです:

  • Sebastian Raschka 著「Linear Discriminant Analysis - Down to the Bits」。アドレス: http://suo.im/gyDOb

次元削減における PCA と LDA の実際の違いについて混乱していませんか? Sebastian Raschka は次のように説明しています。

線形判別分析 (LDA) と主成分分析 (PCA) はどちらも次元削減によく使用される線形変換手法です。 PCA はクラス ラベルを「無視」し、データセット内の分散を最大化する方向 (いわゆる主成分) を見つけることを目的としているため、「教師なし」アルゴリズムとして説明できます。 PCA とは対照的に、LDA は「教師あり」であり、複数のクラス間のマージン (「線形判別式」) を最大化する軸の方向を計算します。

これについての簡単な説明については、以下をお読みください。

  • 次元削減における LDA と PCA の違いは何ですか? (Sebastian Raschka 著)アドレス: http://suo.im/2IPt0U

ステップ7: さらなるディープラーニング

前回の記事では、ニューラル ネットワークとディープラーニングを学習するための入り口を提供しました。これまでの学習が順調に進んでいて、ニューラル ネットワークの理解を深め、いくつかの一般的なニューラル ネットワーク モデルの実装を練習したい場合は、読み続けてください。

まず、基本的なディープラーニング教材を見てみましょう。

  • マシュー・メイヨーによるディープラーニングの主要用語と説明
  • マシュー・メイヨー著「ディープラーニングを理解するための 7 つのステップ」アドレス: http://suo.im/3QmEfV

次に、Google のオープンソース マシン インテリジェンス ライブラリ TensorFlow (効率的なディープラーニング フレームワークであり、現在利用可能な最高のニューラル ネットワーク ツール) に関する簡潔な概要/チュートリアルを試してみましょう。

  • 機械学習への足がかり:誰でもわかる TensorFlow 入門(パート 1、2)
  • TensorFlow 初心者ガイド (パート 3 と 4)

最後に、TensorFlow Web サイトから直接、最も人気があり一般的なニューラル ネットワーク モデルのいくつかを実装した次のチュートリアルを試してみてください。

  • リカレント ニューラル ネットワーク、Google TensorFlow チュートリアル。アドレス: http://suo.im/2gtkze
  • 畳み込みニューラル ネットワーク、Google TensorFlow チュートリアル。アドレス: http://suo.im/g8Lbg

さらに、ディープラーニングを習得するための 7 つのステップに関する記事も現在作成中です。この記事では、TensorFlow 上で高レベル API を使用して、モデル実装の容易さと柔軟性を高めることに焦点を当てています。完了したらここにリンクも追加します。

関連している:

  • 機械学習業界に参入する前に読むべき 5 冊の電子書籍。アドレス: http://suo.im/SlZKt
  • ディープラーニングを理解するための 7 つのステップ。アドレス: http://suo.im/3QmEfV
  • 主要な機械学習用語と説明。アドレス: http://suo.im/2URQGm

このチュートリアルの元のテキストは 2 つの部分に分かれており、この記事に統合されています。元のテキストは http://suo.im/KUWgl および http://suo.im/96wD3 にあります。このチュートリアルは、KDnuggets の副編集長兼データ サイエンティストである Matthew Mayo によって作成されました。

[この記事は、51CTOコラムニストのMachine Heart、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  Kindred AIは、ロボットをより賢くするために、人々にVRメガネをかけて訓練することを望んでいる

>>:  人間の言語を話せる人工知能はより価値がある

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

オペレーティングシステムエンジニアリングの観点から見たAIoT

2008年は特別な年でした。前年にはiPhoneが発売され、翌年にはAndroidがリリースされま...

機械学習モデルを使用して数十億のデータポイントの性別を予測する方法

[[327734]]ユーザーポートレートに基づいた広告は、広告効果を最適化し、精密なマーケティングを...

人工知能:顔認識技術の応用シナリオの紹介

1. シーン分類 顔認識:セキュリティ監視認識、顔アクセス制御、有名人の顔、VIP ID認識など。人...

業界初のAIリアルタイムステルス技術、ステルスの超能力を手に入れるために快手へ

先ほど終わった快手千夜一夜パーティで、ディルラバ・ディルムラトの突然の登場に、司会者と観客から「かっ...

...

AI時代のRedis

[[328841]] 【51CTO.com クイック翻訳】リレーショナル データベースは依然として...

建設における人工知能の能力と限界

AI は、建設業界が大規模なインフラ プロジェクトを計画、実行、管理する方法に革命をもたらし、組織が...

民間ドローンの産業応用シナリオに関する簡単な議論

[[357620]]科学技術の発展に伴い、人類は機械工学、材料科学、電子技術、自動制御、コンピュータ...

...

最高の AI スタートアップはどれですか? 6つの選択肢があなたに方向性を与える

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

5分間の技術講演 | GPT-4——マルチモーダル大規模モデルの新機能と利点

パート01 GPT-3.5との違い1.1 GPT-4が入力できる単語数は25,000語に大幅に増加写...

BI ツールはデータ駆動型の文化を創造するのに十分でしょうか?

[[330768]] 【51CTO.com クイック翻訳】世界中でデータの爆発的な増加がしばらく続...

...

2020 年に役に立つ機械学習ツール

TL;DR — 優れた機械学習アプリケーションを構築することは、ミシュランの星を獲得した料理を作るよ...

イノベーションを統合し、障壁を下げ、PaddlePaddleは人工知能を推進して大規模な工業生産を実現します。

5月20日、中国国家深層学習技術応用工程研究室と百度が共催する「WAVE SUMMIT 2021 ...