原題は「Some Essential Hacks and Tricks for Machine Learning with Python」で、著者は Tirthajyoti Sarkar です。 Python で機械学習を実践するための重要なヒントをいくつか紹介します。
機械学習を始めるのがこれまでになく簡単になりました。成熟した MOOC に加えて、インターネット上には多数の無料リソースがあります。以下に、私が役立ったリソースをいくつか紹介します。
Python は機械学習/AI に適した言語ですか? 複雑なアルゴリズムの純粋に理論的な証明に取り組んでいる博士研究者でない限り、ほとんどの場合、既存の機械学習アルゴリズムを使用し、それを新しい問題の解決に適用することになります。これにはプログラミング方法を知っている必要があります。 「データサイエンスに最適な言語」については多くの議論があります。議論が激化する中、立ち止まってこの洞察に満ちた記事を読んで、自分の考えを理解し、選択肢を検討してください。あるいは、KDnuggets の記事をご覧ください。現在、Python は開発から展開、保守に至るまで、開発者の効率化に役立つと一般的に考えられています。 Python は、Java、C、C++ よりもシンプルで高水準の構文を備えています。 活気のあるコミュニティ、オープンソース文化、数百の高品質な機械学習ライブラリ、業界の大手企業 (Google、Dropbox、Airbnb など) からの強力なサポートを備えています。この記事では、機械学習のための PythonIt の基本的なテクニックに焦点を当てます。 理解し習得する必要がある基本的なプログラミングライブラリ 機械学習の実践をより効率的にするには、いくつかのコア Python ライブラリを習得する必要があります。これらのライブラリについては、以下で簡単に説明します。 ナンピー NumPy は Numerical Python の略で、Python を使用した科学計算やデータ分析に必要な基本ライブラリです。 Pandas や scikit-learn など、ほとんどすべての高レベルツールは Numpy 上に構築されています。 TensorFlow は Numpy 配列を基本的な構成要素として使用し、それに基づいてディープラーニング タスク用の Tensor オブジェクトとグラフフローを構築します。多くの Numpy 操作は C で実装されているため、実行速度が速くなります。これは、データ サイエンスや最新の機械学習タスクにとって貴重な利点となります。 パンダ これは、Python 科学計算における一般的なデータ分析のための最も人気のあるライブラリです。 Pandas は Numpy 配列上に構築されているため、計算速度が速いという特徴を保持し、データ エンジニアリングの分野で次のような多くの機能を提供します。
Matplotlib と Seaborn データの視覚化とプレゼンテーションは、分析から得られた情報を効果的に伝えるために、すべてのデータ サイエンティストが持つべき重要なスキルです。これは、機械学習、そして ML パイプラインを習得し、熟達するために非常に重要です。特定の ML アルゴリズムを適用することを決定する前に、データセットに対して探索的分析を実行する必要があります。 Matplotlib は最も広く使用されている 2D 視覚化ライブラリであり、データから高品質のグラフを生成するための豊富なコマンドとインターフェースを備えています。 、Matplotlib を使い始めるのに役立ちます。 Seaborn は、統計プロットに重点を置いたもう 1 つの優れた視覚化ライブラリです。機械学習の実践者は学ぶ価値があります。 Seaborn は Matplotlib に基づく API (プロット スタイルと色のデフォルトを柔軟に選択可能) を提供し、一般的な統計プロット タイプ用のシンプルな高レベル関数を定義し、Pandas ライブラリにシームレスに接続できます。初心者向けの優れた Seaborn チュートリアルをご紹介します。 Seabornプロットの例 サイキットラーン Scikit-learn は、最も重要な一般的な Python 機械学習パッケージです。サポート ベクター マシン、ランダム フォレスト、勾配ブースティング、k-means、DBSCAN など、さまざまな分類、回帰、クラスタリング アルゴリズムをサポートします。 Scikit-learn は NumPy ライブラリ SciPy ライブラリと相互運用します。一貫したインターフェースを通じて、さまざまな教師ありおよび教師なしアルゴリズムを提供します。 Scikit-learn ライブラリは、実稼働環境での使用にあたり、一定レベルの堅牢性とサポートを実現することを目指しています。つまり、使いやすさ、コードの品質、コラボレーション、ドキュメント、パフォーマンスなどの問題に細心の注意を払う必要があります。 Scikit-learn で使用される機械学習の語彙の簡単な紹介をご覧ください。こちらは、Scikit-learn を使用したシンプルな機械学習パイプライン アプローチを紹介する別の記事です。 Scikit-learn を使用した簡単な機械学習の方法を紹介する別の記事があります。 Scikit-learnの優れた点 Scikit-learn は、機械学習の初心者と経験豊富な専門家の両方にとって非常に使いやすいパッケージです。ただし、非常に経験豊富な ML 実践者であっても、このパッケージの背後にある、効率を大幅に向上できる優れた機能のすべてを認識していない可能性があります。 scikit-learn のあまり知られていないメソッド/インターフェースを紹介してみました。 パイプライン:複数の推定器を 1 つにカプセル化できます。これは、特徴選択、正規化、分類など、データ処理に通常固定された一連の手順がある場合に役立ちます。さらに詳しく知るためのチュートリアルはこちらです。 グリッド検索:ハイパーパラメータは推定器で直接学習されません。 scikit-learn では、これらは推定クラスのコンストラクターに引数として渡されます。最良のクロス検証スコアを取得するためにハイパーパラメータ空間を検索することが可能であり、推奨されます。推定器を構築する際に推定する必要があるパラメータは、この方法で最適化できます。 検証曲線:各推定値には長所と短所があります。一般化誤差は、バイアス、分散、ノイズの観点から分解できます。推定値のバイアスとは、さまざまなトレーニング セットにわたる平均誤差です。推定値の分散は、トレーニング セットの変化に対する感度を示します。ノイズはデータの特性です。特定のハイパーパラメータ推定値が過剰適合しているか、不足適合しているかを判断するには、トレーニング セットと検証セットに個々のハイパーパラメータのスコアをプロットすると非常に便利です。 Scikit-learn 組み込みメソッドについては、こちらをご覧ください。 カテゴリデータのワンホットエンコーディング:入力カテゴリ特徴を分類または予測タスクで使用されるバイナリエンコーディングに変換することは、非常に一般的なデータ前処理タスクです (例: 数値とテキストの特徴を使用したロジスティック回帰)。 Scikit-learn は、上記のプロセスを実装するための強力でシンプルな方法を提供します。これは Pandas データフレームまたは Numpy 配列に対して直接動作するため、ユーザーはこれらの変換用の特別な map/apply 関数を簡単に記述できます。 多項式特徴生成:多数の回帰モデリング タスクでは、入力データの非線形特徴を考慮してモデルの複雑さを高めることが有用です。シンプルで一般的に使用される方法は、特徴の高次項と相互作用項を取得できる多項式特徴を使用することです。 Scikit-learn には、一連の特徴とユーザーが選択した最高多項式次数に基づいて高次交差項を生成するための既製の関数が用意されています。 データセット ジェネレーター: Scikit-learn には、指定されたサイズと複雑さの人工データセットを構築するために使用できるさまざまなランダム サンプル ジェネレーターが含まれています。分類、クラスタリング、回帰、行列分解、さまざまなテストの機能を備えています。 インタラクティブな機械学習を実践する Jupyter プロジェクトは 2014 年に IPython プロジェクトから分離し、すべての主要なプログラミング言語をサポートするインタラクティブなデータ サイエンスおよび科学計算ノートブックへと急速に進化しました。間違いなく、データ サイエンティストが自分のアイデアを迅速にテストしてプロトタイプ化し、その結果を同僚やオープン ソース コミュニティに紹介する上で、これは大きな影響力を持っています。 ただし、データの学習とテストが真に没入型になるのは、ユーザーがモデル パラメータをインタラクティブに制御し、その効果を (ほぼ) リアルタイムで確認できる場合のみです。 Jupyterのレンダリングのほとんどは静的です しかし、より高度な制御が必要であり、for ループを記述するのではなく、単純なマウス スライドで変数を変更する必要があります。何をするか? IPython プラグインを使用できます。 プラグインは基本的に、スライダーやテキスト ボックスなどのチャネル コントロールをレンダリングするフロントエンド (HTML/JavaScript) としてブラウザーを通じて公開される Python コンポーネントです。 この記事では、シンプルなプラグインを使用して基本的な曲線フィッティング演習を完了する方法を説明します。以降の記事では、インタラクティブ テクノロジーと学習テクノロジーの分野についてさらに詳しく説明します。 ディープラーニングフレームワーク この記事では、Python を使用して機械学習の素晴らしい世界を探索するための重要なヒントを紹介します。ただし、TensorFlow、Keras、PyTorch などのディープラーニング フレームワークについては、それぞれ詳細な説明が必要なため、ここでは取り上げません。上記のトピックに関する非常に優れた記事をここで読むことができますが、これらの素晴らしいフレームワークについては後ほど詳しく説明する予定です。
要約する 機械学習のトピック全体(たとえ一部でも)を記事でカバーすることは不可能です。しかし、この投稿が皆さんの興味を刺激し、機械学習の旅を始めるために Python エコシステムにすでに存在するいくつかの強力なフレームワークへの明確な指針を提供できたことを願っています。 |
<<: スマートビジョンが AI アプリケーションに及ぼす 5 つの影響
>>: 機械学習入門メソッドの最も価値のあるコレクションを今日あなたと共有します
まず、負荷分散とは何かを紹介します(百科事典より)負荷分散は既存のネットワーク構造に基づいて構築され...
ハッカーや詐欺師が新しいテクノロジーを入手したり、古い脆弱性を悪用する新しい方法を考え出したりするに...
正確な推奨システム モデルは、多くのインターネット製品の中核的な競争力です。パーソナライズされた推奨...
マンデルブロ複素集合: https://en.wikipedia.org/wiki/Mandelbr...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
百度は昨年7月にAIプラットフォームをオープンして以来、開発者にAIオープンテクノロジーの能力を継続...
たった今、百度が公式発表しました。自動運転車は2018年に量産される予定です。 Subversion...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
商業的な AI の成功のほとんどは、教師あり機械学習 (ML) に関連しています。たとえば、スマート...
組織内の利害関係者の視点から IT の役割を理解することは、IT がどのように変革する必要があるかを...
「当社の [製品] は、[タスク 1]、[タスク 2]、[タスク 3] など複数のタスクに使用できる...
じっとしていられないアンドレイ・カルパティに新しいプロジェクトが! OpenAIはここ数日、非常に忙...