一つ選びますか? Python 機械学習の実践的なヒント

一つ選びますか? Python 機械学習の実践的なヒント

原題は「Some Essential Hacks and Tricks for Machine Learning with Python」で、著者は Tirthajyoti Sarkar です。

Python で機械学習を実践するための重要なヒントをいくつか紹介します。

私はコンピュータサイエンスとテクノロジーを専攻している学生です。機械学習/ディープラーニング/人工知能を始めるにはどうすればいいですか?

機械学習を始めるのがこれまでになく簡単になりました。成熟した MOOC に加えて、インターネット上には多数の無料リソースがあります。以下に、私が役立ったリソースをいくつか紹介します。

  1. まずは YouTube で素晴らしいビデオをチェックしてみましょう。優れた教科書や記事を読んでください。たとえば、『The Master Algorithm: How Machine Learning and Artificial Intelligence Will Reshape the World』を読んだことがありますか?そして、この本の機械学習に関する素晴らしいページに深く魅了されることを保証します。

  2. まず、機械学習、人工知能、ディープラーニング、データサイエンス、コンピュータービジョン、ロボティクスといった関連する用語を明確に区別することが重要です。専門家による講義を読んだり聞いたりしましょう。影響力のあるデータ サイエンティストである Brandon Rohrer による、データ サイエンスの概念を明確に定義し、区別するこの素晴らしいビデオをご覧ください。

  3. 勉強で何を達成したいのかを明確に理解しましょう。それから、Coursera のコースやワシントン大学のコースを受講するのも良い選択肢です。

  4. フォローする価値のある素晴らしいブログとしては、KDnuggets、データ サイエンスに関する Mark Meloon のブログ、Brandon Rohrer のブログ、Open AI のブログ (主に研究に関するもの) などがあります。

  5. オンライン MOOC コースに興味がある場合は、この記事のガイダンスをご覧になることをお勧めします。

  6. 最も重要なのは、感情を育むことです。良いソーシャル フォーラムに参加してください。ただし、センセーショナルな見出しやニュース コンテンツをフォローしたいという誘惑には抵抗してください。それが何であるか、何ではないか、どこに向かうのか、どんな可能性があるのか​​を理解するために、自分で読んでみてください。 次に、機械学習やデータ サイエンスの原則を日常業務にどのように適用できるかについてじっくり考えてみましょう。 次回の昼食の費用を予測するための単純な回帰モデルを構築したり、電力会社から電力使用量データをダウンロードして Excel で簡単な時系列プロットを作成し、電力使用量のパターンを発見したりすることができます。 機械学習に完全に夢中になったら、このビデオをご覧ください。

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 による視覚化。

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 などのディープラーニング フレームワークについては、それぞれ詳細な説明が必要なため、ここでは取り上げません。上記のトピックに関する非常に優れた記事をここで読むことができますが、これらの素晴らしいフレームワークについては後ほど詳しく説明する予定です。

  • TensorFlow に関する 7 つの優れた記事 (Datascience Central)

  • ニューラルネットとKerasの例に関するDatacampチュートリアル

  • PyTorch に関する AnalyticsVidhya チュートリアル

要約する

機械学習のトピック全体(たとえ一部でも)を記事でカバーすることは不可能です。しかし、この投稿が皆さんの興味を刺激し、機械学習の旅を始めるために Python エコシステムにすでに存在するいくつかの強力なフレームワークへの明確な指針を提供できたことを願っています。

<<:  スマートビジョンが AI アプリケーションに及ぼす 5 つの影響

>>:  機械学習入門メソッドの最も価値のあるコレクションを今日あなたと共有します

ブログ    
ブログ    
ブログ    

推薦する

AIGC教育産業パノラマレポート:AIティーチングアシスタントと家庭教師が現実のものとなり、学習マシンが新たな機会をもたらす

1 年間の急速な反復を経て、業界ではすでに、生成 AI が最初にどの業界に実装されるかについての答え...

人工知能は学習意欲のない人々に取って代わるのでしょうか?

AI は学習を望まない人々に取って代わるのでしょうか? 日常的に AI が使われる時代では、AI ...

マイクロソフト中国CTO: AIを祭壇から外してください

[[257901]]まとめ明らかに、中国における人工知能に関する誇大宣伝は、当初の意図から逸脱してい...

アシモフのロボット工学三原則とモービルアイの自動運転五原則

テクノロジー・トラベラーは11月20日、北京から報道した(執筆者:ガオ・フェイ):多くのSF作家の想...

2024年に最も使用される11のAIテキスト生成ツール

世界は、スーパーヒーローのマントを身につけていない強力な世界的勢力のような人工知能 (AI) が支配...

ロボットの台頭:伝統産業を変革する新技術

アルゴリズムの時代が到来しました。 Google、Amazon、AppleなどのIT大手が開発した、...

初心者のためのホームオートメーション完全ガイド

スマートホームはテクノロジーを活用して、居住者にさらなる利便性、節約、快適性、セキュリティを提供しま...

Google AIのスターがPika: ビデオ生成Lumiereの創設科学者に就任

動画世代が猛スピードで進化する中、ピカは偉大なる将軍を迎える―― Google の研究者である Om...

Alibaba のエンジニアは、ナレッジ グラフ データ構築の「難題」にどのように取り組んでいるのでしょうか?

[[233069]]アリ姉の紹介:「トマト」を検索すると、その栄養価やカロリーがわかるだけでなく、...

AIの偏見を公平に防ぐ方法

人工知能 (AI) には、ビジネス運営に革命を起こす大きな可能性があります。実際、ある調査によると、...

マスク氏は世界一の富豪の称号を失い、4000億ドルの高額報酬計画は却下され、テスラの登録地をテキサスに変更する予定

マスク氏は怒り、残酷なことを言った。 決してデラウェア州に法人を登録しないでください。 州裁判所はテ...

...

...

Ruan Yifeng: Github のオブジェクトカウントアルゴリズム

Github を使用しているときに、次のプロンプトを見たことがありますか? $ gitクローン ht...