Python は現在、機械学習で最も人気のある言語であると言っても過言ではなく、オンラインでも膨大なリソースを見つけることができます。あなたも Python で機械学習を始めようと考えていますか? このチュートリアルは、Python 機械学習を 0 から 1 まで習得し、成功に導くのに役立つかもしれません。1 から 100 までの機械学習の専門家になるには、あなた自身の努力次第です。 「始めること」は、多くの場合最も困難であり、特に選択肢が多すぎる場合は、決定を下すのが困難になることがよくあります。このチュートリアルの目的は、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 を知らない、またはまだ基本的なレベルである場合は、次の 2 つのコースを受講することをお勧めします。
30 分間の簡単な Python チュートリアルが必要な場合は、こちらをご覧ください。
もちろん、すでに経験豊富な 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 コースに加えて、他に必要なものがあれば、インターネット上には選択できる他のコースが多数あります。たとえば、私はトム・ミッチェルが大好きです。こちらは彼の最近のスピーチのビデオです(マリア・フロリナ・バルカンも一緒に)。とてもわかりやすいです。
この時点では、すべてのメモやビデオは必要ありません。役に立つアプローチとしては、上記の注記とビデオの適切な部分を参照して、適切と思われるときに、以下の特定の演習に直接進むことです。 3. ステップ3: 科学計算用Pythonパッケージの概要 さて、Python プログラミングを習得し、機械学習についてある程度理解することができました。 Python 以外にも、実際の機械学習を実行するためによく使用されるオープンソース ソフトウェア ライブラリがいくつかあります。大まかに言えば、基本的な機械学習タスクを実行するために使用できる、いわゆる科学的 Python ライブラリがいくつかあります (これは確かに多少主観的です)。
これらのライブラリを学ぶ良い方法は、次の資料を研究することです。
このチュートリアルの後半では、matplotlib に基づくデータ視覚化ライブラリである Seaborn など、他のパッケージについても説明します。上記のパッケージは、Python 機械学習でよく使用されるコアライブラリのほんの一部ですが、これらを理解しておけば、後で他のパッケージに遭遇したときに混乱することがなくなります。 さあ始めましょう! 4. ステップ4: Pythonで機械学習を学ぶ まず準備状況を確認する
ここで、Python 機械学習標準ライブラリである scikit-learn を使用して機械学習アルゴリズムを実装します。 scikit-learn フローチャート 以下のチュートリアルと演習の多くは、Python ステートメントを実行するためのインタラクティブな環境である iPython (Jupyter) Notebook を使用して行われます。 iPython Notebook はオンラインで簡単に見つけたり、ローカル コンピューターにダウンロードしたりできます。
また、次のチュートリアルは一連のオンライン リソースで構成されていることに注意してください。コースに不適切な点があると思われる場合は、作成者と連絡を取ることができます。最初のチュートリアルは scikit-learn から始まります。チュートリアルを続ける前に、以下の記事を順番に読むことをお勧めします。 以下は、Python で最も一般的に使用されている一般的な機械学習ライブラリである scikit-learn を紹介し、K 最近傍アルゴリズムを解説した記事です。
以下は、よく知られたデータベースを使用してプロジェクトを開始する方法について説明した、より詳細で拡張された紹介です。
次の投稿では、トレーニング/テスト セットの分割など、scikit-learn でさまざまなモデルを評価するための戦略に焦点を当てます。
5. ステップ5: Pythonで基本的な機械学習アルゴリズムを実装する scikit-learn の基本的な知識があれば、より一般的で実用的なアルゴリズムをさらに探求することができます。まず、よく知られている k-means クラスタリング アルゴリズムから始めます。これは、教師なし学習の問題に適した非常にシンプルで効率的な方法です。
次に、分類問題に戻り、最も人気のある分類アルゴリズムを学びます。
分類問題を理解した後、連続的な数値予測について引き続き見ていきます。
回帰の考え方を分類問題、つまりロジスティック回帰に適用することもできます。
6. ステップ6: Pythonで高度な機械学習アルゴリズムを実装する scikit-learn について理解できたので、次はより高度なアルゴリズムに進みます。 1 つ目はサポート ベクター マシンです。これは、データを高次元空間にマッピングすることに依存する非線形分類器です。
次に、Kaggle Titanic コンペティションを通じて、ランダム フォレストをアンサンブル分類器として学習する方法を調べます。
次元削減アルゴリズムは、問題で使用される変数の数を削減するためによく使用されます。主成分分析は、教師なし次元削減アルゴリズムの特殊な形式です。
ステップ 7 に進む前に、比較的短期間で達成した進歩について少し考えてみましょう。 Python とその機械学習ライブラリから始めて、最も一般的でよく知られている機械学習アルゴリズム (k 近傍法、k 平均法クラスタリング、サポート ベクター マシンなど) のいくつかを学習しただけでなく、強力なアンサンブル手法 (ランダム フォレスト) といくつかの追加の機械学習タスク (次元削減アルゴリズムとモデル検証手法) も学習しました。いくつかの基本的な機械学習技術に加えて、いくつかの便利なツールキットの検討も始めました。 今後、必要な新しいツールを学習していきます。 7. ステップ7: Pythonによるディープラーニング ニューラルネットワークは多くの層から構成される ディープラーニングはあらゆるところに存在します。ディープラーニングは数十年前に遡るニューラルネットワークの基礎の上に構築されていますが、近年の進歩は数年前に始まり、ディープニューラルネットワークの認知能力が大幅に向上し、幅広い関心を集めています。ニューラル ネットワークを初めて知る場合は、KDnuggets に、ディープラーニングに関する最近のイノベーション、成果、称賛について詳しく説明した記事が多数掲載されています。 この最後のステップでは、すべてのタイプのディープラーニングを確認するのではなく、最先端の最新の Python ディープラーニング ライブラリ 2 つでいくつかのシンプルなネットワーク実装を検討します。ディープラーニングをさらに深く知りたい読者には、まず以下の無料オンライン書籍から始めることをお勧めします。 ニューラル ネットワークとディープラーニング、マイケル ニールセン著: http://neuralnetworksanddeeplearning.com/ (1)テアノ リンク: http://deeplearning.net/software/theano/ Theano は、ここで最初に紹介した Python ディープラーニング ライブラリです。 Theano の著者が何と言ったか見てみましょう:
Theano を使用したディープラーニングの入門チュートリアルは少し長いですが、十分に優れており、鮮明で、高く評価されています。
(2)カフェ リンク: http://caffe.berkeleyvision.org/ 私たちがテストするもう一つのライブラリは Caffe です。もう一度、著者から始めましょう:
このチュートリアルはこの記事の中で最高のものです。上記では興味深い例をいくつか見てきましたが、Caffe を通じて Google の DeepDream を実装する次の例に匹敵するものはありません。これはかなりすごいですね! チュートリアルをマスターしたら、プロセッサを実際に動かして楽しんでみてください。
これが早く簡単にできるとは約束できませんが、時間をかけて上記の 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部から順番に読むことをおすすめします。初心者向けの入門資料もすべてリストします。インストール手順は前の記事に記載されています。 ただし、すでに読んでいる場合は、以下の基本から始めます。
機械学習の基礎を学ぶための代替または補完的な方法を探しているなら、私が現在視聴している Shai Ben-David のビデオ講義と Shai Shalev-Shwartz の教科書をお勧めします。
覚えておいてください、私が書いているシリーズを始める前に、この入門資料をすべて読む必要はありません。機械学習アルゴリズムを使用してモデルが実装されるとき、または適切な概念が後続のステップで実際に適用されるときに、ビデオ講義、教科書、およびその他のリソースが利用可能になります。具体的な状況はご自身で判断してください。 ステップ2: さらなる分類 まず新しい資料から始め、分類手法を統合し、いくつかの追加アルゴリズムを導入します。この記事の最初の部分では、決定木、サポート ベクター マシン、ロジスティック回帰、合成分類ランダム フォレストについて説明しましたが、k 近傍法、単純ベイズ分類器、多層パーセプトロンについても追加します。 Scikit-learn 分類器 k-近傍法 (kNN) は、すべての計算が分類時に (トレーニング ステップ中に事前に行われるのではなく) 実行される、単純な分類器と遅延学習器の例です。 kNN は非パラメトリックであり、データ インスタンスを k 個の最も近いインスタンスと比較して分類する方法を決定します。
ナイーブベイズはベイズの定理に基づいた分類器です。これは、機能間に独立性があり、クラス内の特定の機能の存在は同じクラス内の他の機能の存在とは独立していると想定しています。
多層パーセプトロン (MLP) は、複数のノード層で構成される単純なフィードフォワード ニューラル ネットワークであり、各層は後続の層に完全に接続されています。多層パーセプトロンは、Scikit-learn バージョン 0.18 で導入されました。 まず、Scikit-learn のドキュメントから MLP 分類器の概要を読み、次にチュートリアルを使用して実装を練習します。
ステップ3: さらなるクラスタリング 次に、教師なし学習の一種であるクラスタリングについて説明します。前回の記事では、k-means アルゴリズムについて説明しました。ここでは、DBSCAN と期待値最大化 (EM) について紹介します。 Scikit-learn クラスタリング アルゴリズム まず、以下の入門記事を読んでください。最初の記事は、k-means と EM クラスタリング手法の簡単な比較で、新しい形式のクラスタリングへの良い導入となっています。2 番目の記事は、Scikit-learn で利用できるクラスタリング手法の概要です。
期待最大化 (EM) は確率的クラスタリング アルゴリズムであり、インスタンスが特定のクラスターに属する確率を決定します。 EM は、統計モデル (Han、Kamber、Pei) のパラメータの最大尤度または最大事後推定に近いものです。 EM 手順は、一連のパラメータから開始され、k 個のクラスターに関してクラスタリングが最大化されるまで反復されます。 まず、EM アルゴリズムのチュートリアルを読んでください。次に、関連する Scikit-learn ドキュメントを確認します。最後に、チュートリアルに従って、Python を使用して EM クラスタリングを自分で実装します。
ガウス混合モデルが最初はわかりにくいように思われる場合は、Scikit-learn ドキュメントのこの関連セクションを読むと、余分な懸念が軽減されるはずです。 ガウス混合オブジェクトは、ガウスモデルの混合を適合するための期待値最大化 (EM) アルゴリズムを実装します。 密度ベースのノイズ付き空間クラスタリング アプリケーション (DBSCAN) は、密度の高いデータ ポイントをグループ化し、密度の低いデータ ポイントを外れ値として指定することによって動作します。 まず、Scikit-learn のドキュメントから DBSCAN の実装例を読んで従い、次に簡潔なチュートリアルに従ってください。
ステップ4: その他の統合方法 前回の記事では、ランダム フォレスト (RF) という単一のアンサンブル メソッドのみを取り上げました。 RF は過去数年間、トップクラスの分類器として大きな成功を収めてきましたが、唯一のアンサンブル分類器ではありません。パッケージング、プロモーション、投票について見ていきます。 私を応援して まず、これらのアンサンブル学習者の概要を読んでください。最初のものは一般的な概要で、2 番目のものは Scikit-learn に関連しています。
次に、新しいアンサンブル手法に進む前に、新しいチュートリアルでランダム フォレストについて簡単に学習します。
パッキング、ブースティング、投票はすべて、複数のモデルの構築を伴うアンサンブル分類器のさまざまな形式ですが、これらのモデルの構築に使用されるアルゴリズム、モデルで使用されるデータ、および結果が最終的に結合される方法は、ソリューションごとに異なります。
では、なぜアンサンブル モデルなのでしょうか? 特定の角度からこの問題にアプローチするために、Scikit-learn のドキュメントから、ブースティングに特に関連するバイアスと分散のトレードオフの概要を示します。
アンサンブル学習器に関する入門資料を読み、いくつかの特定のアンサンブル分類器の基本を理解したところで、Machine Learning Mastery の Scikit-learn を使用して Python でアンサンブル分類器を実装する方法を説明します。
ステップ5: 勾配ブースティング 次に、アンサンブル分類器の研究を続け、現在最も人気のある機械学習アルゴリズムの 1 つを探ります。勾配ブースティングは最近、機械学習に大きな影響を与え、Kaggle コンペティションで最も人気があり成功したアルゴリズムの 1 つになりました。 グラデーションブーストをください まず、勾配ブースティングの概要を読んでください。
次に、勾配ブースティングが Kaggle コンペティションで「最も勝利する」方法である理由を学びます。
Scikit-learn には勾配ブースティングの独自の実装がありますが、これを少し変更して、より高速な実装である XGBoost ライブラリを使用します。 次のリンクには、XGBoost ライブラリと勾配ブースティング (必要な場合) に関する追加情報が提供されています。
次に、次のチュートリアルに従ってすべてをまとめます。
以下のより簡潔な例に従って強化することもできます。
ステップ6: さらなる次元削減 次元削減とは、主変数のセットを取得するプロセスを使用して、モデル構築に使用される変数を初期数から削減された数に削減するプロセスです。 次元削減には主に 2 つの形式があります。
以下は、一般的に使用される特徴抽出方法のペアです。
上記の定義は PCA の Wikipedia エントリからの引用ですが、興味があればさらに詳しく読むことができます。ただし、次の概要/チュートリアルは非常に詳細です。
LDA は、分散分析 (ANOVA) や回帰分析と密接に関連しており、これらも従属変数を他の特徴や測定値の線形結合として表そうとします。ただし、ANOVA ではカテゴリ独立変数と連続従属変数が使用されるのに対し、判別分析では連続独立変数とカテゴリ従属変数 (クラス ラベルなど) が使用されます。 上記の定義もWikipediaからの引用です。全文はこちらです:
次元削減における PCA と LDA の実際の違いについて混乱していませんか? Sebastian Raschka は次のように説明しています。
これについての簡単な説明については、以下をお読みください。
ステップ7: さらなるディープラーニング 前回の記事では、ニューラル ネットワークとディープラーニングを学習するための入り口を提供しました。これまでの学習が順調に進んでいて、ニューラル ネットワークの理解を深め、いくつかの一般的なニューラル ネットワーク モデルの実装を練習したい場合は、読み続けてください。 まず、基本的なディープラーニング教材を見てみましょう。
次に、Google のオープンソース マシン インテリジェンス ライブラリ TensorFlow (効率的なディープラーニング フレームワークであり、現在利用可能な最高のニューラル ネットワーク ツール) に関する簡潔な概要/チュートリアルを試してみましょう。
最後に、TensorFlow Web サイトから直接、最も人気があり一般的なニューラル ネットワーク モデルのいくつかを実装した次のチュートリアルを試してみてください。
さらに、ディープラーニングを習得するための 7 つのステップに関する記事も現在作成中です。この記事では、TensorFlow 上で高レベル API を使用して、モデル実装の容易さと柔軟性を高めることに焦点を当てています。完了したらここにリンクも追加します。 関連している:
このチュートリアルの元のテキストは 2 つの部分に分かれており、この記事に統合されています。元のテキストは http://suo.im/KUWgl および http://suo.im/96wD3 にあります。このチュートリアルは、KDnuggets の副編集長兼データ サイエンティストである Matthew Mayo によって作成されました。 [この記事は、51CTOコラムニストのMachine Heart、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です] この著者の他の記事を読むにはここをクリックしてください |
<<: Kindred AIは、ロボットをより賢くするために、人々にVRメガネをかけて訓練することを望んでいる
2008年は特別な年でした。前年にはiPhoneが発売され、翌年にはAndroidがリリースされま...
[[327734]]ユーザーポートレートに基づいた広告は、広告効果を最適化し、精密なマーケティングを...
1. シーン分類 顔認識:セキュリティ監視認識、顔アクセス制御、有名人の顔、VIP ID認識など。人...
先ほど終わった快手千夜一夜パーティで、ディルラバ・ディルムラトの突然の登場に、司会者と観客から「かっ...
[[328841]] 【51CTO.com クイック翻訳】リレーショナル データベースは依然として...
AI は、建設業界が大規模なインフラ プロジェクトを計画、実行、管理する方法に革命をもたらし、組織が...
[[357620]]科学技術の発展に伴い、人類は機械工学、材料科学、電子技術、自動制御、コンピュータ...
この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...
パート01 GPT-3.5との違い1.1 GPT-4が入力できる単語数は25,000語に大幅に増加写...
[[330768]] 【51CTO.com クイック翻訳】世界中でデータの爆発的な増加がしばらく続...
TL;DR — 優れた機械学習アプリケーションを構築することは、ミシュランの星を獲得した料理を作るよ...
5月20日、中国国家深層学習技術応用工程研究室と百度が共催する「WAVE SUMMIT 2021 ...