ホームページ >テクノロジー周辺機器 >IT業界 >Pythonを使用した機械学習のプライマー

Pythonを使用した機械学習のプライマー

Christopher Nolan
Christopher Nolanオリジナル
2025-02-10 15:54:09792ブラウズ

A Primer on Machine Learning with Python

過去10年間、機械学習は科学研究室から日常のWebおよびモバイルアプリケーションに移行しました。機械学習により、アプリケーションは、画像のオブジェクトや顔の検出、スパムやヘイトスピーチの検出、電子メールおよびメッセージアプリケーションのスマートな返信の生成など、以前に難しいタスクを実行できます。

ただし、機械学習の実行は、古典的なプログラミングとは根本的に異なります。この記事では、機械学習の基本を学び、花の測定に基づいて花の種を予測できる基本モデルを作成します。

キーポイント

    機械学習は、科学研究室から日常のWebおよびモバイルアプリケーションに進化し、以前はプログラムが困難だったタスクを実行できるようになりました。
  • 機械学習は経験に依存しており、ルールを提供するのではなく、例を通じてモデルを訓練します。機械学習アルゴリズムにはさまざまなカテゴリがあり、それぞれが特定の問題を解決できます:監視された学習、監視されていない学習、補強学習。
  • Pythonは、そのシンプルさ、読みやすさ、Scikit-Learn、Tensorflow、Pytorchなどのライブラリやフレームワークなどの幅広いエコシステムにより、人気のある機械学習言語になりました。ただし、Pythonプログラミングの基本概念、Numpy、Pandas、Matplotlibなどのライブラリ、統計と確率を理解することは前提条件です。
  • 機械学習モデルを実装するプロセスには、問題の定義、データの収集、データセットのトレーニングとテストセットへの分割、モデルの構築、パフォーマンスの評価が含まれます。相互検証やトレーニングテストの分割などの手法、および精度、精度、リコール、F1スコアなどの指標を使用して、モデルのパフォーマンスを検証できます。

機械学習はどのように機能しますか?

クラシックプログラミングは、さまざまなクラス、関数、およびIF-ELSEコマンドに分類できる明確な問題に依存しています。一方、機械学習は、経験に基づいて行動の開発に依存しています。機械学習モデルにルールを提供する代わりに、例を通じてそれらをトレーニングします。

機械学習アルゴリズムにはさまざまなカテゴリがあり、それぞれが特定の問題を解決できます。

監視された学習

監視された学習は、入力データから結果まで取得したい質問に適しています。すべての監視されている学習問題の一般的な特徴は、マークされた画像や履歴販売データなど、モデルのテストに使用できる実際の状況の存在です。

監視された学習モデルは、回帰または分類の問題を解決できます。回帰モデルは、数量(販売された商品の量や在庫の価格など)を予測しますが、分類問題は入力データのカテゴリ(猫/犬/魚/鳥/鳥、詐欺/非フラードなど)を決定しようとします。

画像の分類、顔の検出、株価の予測、販売予測は、監督された学習が解決できる問題の例です。

いくつかの一般的な監視された学習アルゴリズムには、線形回帰とロジスティック回帰、サポートベクターマシン、決定ツリー、人工ニューラルネットワークが含まれます。

監視されていない学習

監視されていない学習は、データがあるが結果ではなくパターンを探している問題に適しています。たとえば、類似性に基づいてセグメントにグループ化することをお勧めします。これは、教師のない学習におけるクラスタリングと呼ばれます。または、ビジネスの通常の活動から逸脱する悪意のあるネットワークトラフィックを検出することもできます。これは異常検出と呼ばれ、別の監視されていない学習タスクです。監視されていない学習は、無関係な機能を削除することで機械学習タスクを簡素化する手法である次元削減にも使用できます。

監視されていない人気のない学習アルゴリズムには、K-meanクラスタリングと主成分分析(PCA)が含まれます。

補強学習

強化学習は、エージェントが環境と対話することにより目標を達成しようとする機械学習の分野です。強化学習には、アクション、ステータス、および報酬が含まれます。訓練されていない強化学習エージェントは、ランダムアクションから始まります。各アクションは、環境の状態を変更します。エージェントが希望の状態で自分自身を見つけた場合、彼は報酬を受け取ります。エージェントは、最も報酬を生成する一連のアクションと状態を見つけようとします。

強化学習は、GoogleのAlphagoやAlphastarなどの推奨システム、ロボット工学、およびゲームロボットで使用されます。

Python環境のセットアップ

この記事では、機械学習の最も人気のある分野であり、その結果が評価が容易であるため、監督された学習に焦点を当てます。 Pythonは、機械学習アプリケーションをサポートする多くの機能とライブラリがあるため、使用します。ただし、一般的な概念は、同様のライブラリを持つプログラミング言語に適用できます。

(Pythonに精通していない場合、FreeCodecampはあなたを始めるための素晴らしいクラッシュコースを提供します。)

データサイエンスと機械学習で一般的に使用されるPythonライブラリの1つは、人気のある機械学習アルゴリズムの実装を提供するSCIKIT-LEARNです。 Scikit-Learnは基本的なPythonインストールの一部ではありません。手動でインストールする必要があります。

macOSとLinuxはPythonで事前にインストールされています。 Scikit-Learnライブラリをインストールするには、端末ウィンドウに次のコマンドを入力してください。

<code>pip install scikit-learn</code>
またはpython 3:

の場合

<code>python3 -m pip install scikit-learn</code>
Microsoft Windowsでは、最初にPythonをインストールする必要があります。公式WebサイトからWindows Python 3インストーラーの最新バージョンを入手できます。 Pythonがインストールされたら、コマンドラインウィンドウに次のコマンドを入力します。

代わりに、スタンドアロンのPython 3、Scikit-Learn、および

numpy
<code>python -m pip install scikit-learn</code>

scipy > andmatplotlib。公式ウェブサイトで、Anacondaの無料の個人版のインストール手順を見つけることができます。 ステップ1:問題を定義します

すべての機械学習プロジェクトの最初のステップは、解決したい問題を理解することです。質問を定義すると、収集する必要があるデータの種類を決定し、使用する必要がある機械学習アルゴリズムのアイデアを提供します。 私たちの例では、花びらとsepalの長さと幅の測定に基づいて花の種類を予測するモデルを作成したいと考えています。

これは監督分類の問題です。さまざまな花標本とそれらの対応する種の測定値のリストを収集する必要があります。次に、このデータを使用して、測定を種にマッピングできる機械学習モデルをトレーニングおよびテストします。

ステップ2:データを収集

機械学習の最も難しい部分の1つは、モデルをトレーニングするためにデータを収集することです。モデルのトレーニングに必要なデータの量を収集できるソースを見つける必要があります。また、データの品質を確認し、モデルが処理するさまざまな状況を表していることを確認し、隠されたバイアスを含むデータの収集を避ける必要があります。

幸いなことに、Scikit-Learnには、さまざまな機械学習アルゴリズムを試すために使用できるおもちゃのデータセットがいくつか含まれています。 「IRISデータセット」には、質問に必要な正確なデータが含まれています。ライブラリからロードするだけです。

次のコードでは、ハウジングデータセットがロードされます:

<code>pip install scikit-learn</code>

IRISデータセットには150の観測値が含まれており、それぞれが4つの測定値(IRIS.DATA)とターゲットフラワー種(Iris.Target)を備えています。 Iris.feature_namesのデータ列の名前を見ることができます:

<code>python3 -m pip install scikit-learn</code>

Iris.targetには、データセットに登録されている3つの花種の1つの数値インデックス(0-2)が含まれています。花の種の名前はiris.target_namesにあります:

<code>python -m pip install scikit-learn</code>

ステップ3:データセットを分割

トレーニングを開始する前に、データをトレーニングセットとテストセットに分割する必要があります。トレーニングセットを使用して機械学習モデルをトレーニングし、テストセットを使用してその精度を確認します。

これは、モデルがトレーニングデータに過剰になっていないことを確認するために行われます。オーバーフィッティングとは、機械学習モデルがトレーニングの例でうまく機能するが、目に見えないデータでは機能しない場合です。過剰適合は、間違った機械学習アルゴリズムを選択し、モデルの誤解、トレーニングデータの低下、またはトレーニングの例が少なすぎることによって引き起こされる場合があります。

解決している問題の種類と持っているデータの量に応じて、テストセットに割り当てるデータの量を決定する必要があります。通常、多くのデータ(約数万の例)がある場合、小さなサンプルの約1%でさえ、モデルをテストするのに十分です。合計150のレコードを含むIRISデータセットの場合、75-25セグメンテーションを選択します。

Scikit-Learnには、データセットをトレーニングデータセットとテストデータセットに分割するTRAIN_TEST_SPLIT関数があります。

train_test_splitデータとターゲットデータセットを取得し、トレーニング(x_trainおよびy_train)とテスト(x_testとy_test)に使用される2つのペアのデータセットを返します。 test_sizeパラメーターは、テストに割り当てられるデータの割合(0〜1)を決定します。 Stratifeパラメーターは、トレーニングアレイとテスト配列に、各カテゴリからのバランスの取れたサンプルの数が含まれていることを保証します。 RANDOM_STATE変数は、SCIKIT-LEARNの多くの関数に存在し、乱数ジェネレーターを制御し、再現性を実現するために使用されます。
<code>from sklearn.datasets import load_iris

iris = load_iris()
</code>

ステップ4:モデルを構築

データの準備が整ったので、機械学習モデルを作成し、トレーニングセットでトレーニングできます。私たちが扱っている分類の問題を解決できる多くの異なる機械学習アルゴリズムがあります。私たちの場合、「ロジスティック回帰」アルゴリズムを使用します。これは非常に高速で、あまりにも多くの次元を含まない単純な分類問題に適しています。

<code>pip install scikit-learn</code>

ステップ5:モデルを評価します

モデルをトレーニングしたので、その精度を測定したいと考えています。 LogisticRegressionクラスには、モデルの精度を返すスコアメソッドがあります。まず、トレーニングデータのモデルの精度を測定します。

これは約0.97を返します。つまり、モデルはトレーニングの例の97%を正確に予測します。これは、種ごとに約37のトレーニング例しかないことを考えるとかなり良いです。
<code>python3 -m pip install scikit-learn</code>

次に、テストセットのモデルの精度を確認します:

これにより、結果の約95%が得られ、トレーニングの精度をわずかに下回ります。これは、モデルが今まで見たことのない例であるため、自然なことです。より大きなデータセットを作成するか、別の機械学習アルゴリズム(サポートベクトルマシンなど)を試すことにより、モデルの精度をさらに改善し、トレーニングとテストのパフォーマンスのギャップを埋めることができる場合があります。
<code>python -m pip install scikit-learn</code>

最後に、新しい例でトレーニングしたモデルの使用方法を確認したいと思います。 LogisticRegressionクラスには、観測値の配列を入力として取得し、予測カテゴリを返す予測関数があります。花分類器モデルの場合、花のカテゴリを表す整数を返す4つの測定値(Sepalの長さ、sepal幅、花びらの長さ、花びら幅)の配列を提供する必要があります。

おめでとうございます!最初の機械学習モデルを作成しました。これをユーザーから測定して花の種を返すアプリに結合することができます。

<code>from sklearn.datasets import load_iris

iris = load_iris()
</code>
これが機械学習の達人になるための最初のステップであることを願っています。ここから、他の機械学習アルゴリズムを学び、機械学習の基本概念についてさらに学び、ニューラルネットワークやディープラーニングなどのより高度なトピックを学び続けることができます。いくつかの学習と練習により、画像のオブジェクトを検出し、音声コマンドをプロセスし、ユーザーとの会話をすることができる並外れたアプリケーションを作成できます。

Python(faq)

を使用した機械学習用の

FAQ

機械学習にPythonを使用することを学習するための前提条件は何ですか?

機械学習にPythonを使用することを学習するには、Pythonプログラミングの基本的な理解が必要です。また、Numpy、Pandas、Matplotlibなどのライブラリに精通することは有益です。さらに、統計と確率の基本的な理解は、機械学習アルゴリズムのコアを形成するため重要です。

Pythonは他の機械学習言語と比較してどうですか?

Pythonは、そのシンプルさと読みやすさのため、最も人気のある機械学習言語の1つです。 Scikit-Learn、Tensorflow、Pytorchなど、機械学習モデルの開発を簡素化する幅広いライブラリとフレームワークがあります。 RやJavaなどの他の言語も機械学習で使用されていますが、Pythonの広範なエコシステムは多くの人にとって最初の選択肢です。

Pythonを使用してどのような一般的な機械学習アルゴリズムを実装できますか?

PythonのScikit-Learnライブラリは、さまざまな機械学習アルゴリズムの実装を提供します。一般的に使用されるアルゴリズムには、線形回帰、ロジスティック回帰、決定ツリー、ランダムフォレスト、サポートベクターマシン、k-nearest Neightが含まれます。深い学習には、TensorflowやPytorchなどのライブラリを使用できます。

Python機械学習モデルのパフォーマンスを検証する方法は?

クロス検証やトレーニングテストの分割などの手法を使用して、モデルのパフォーマンスを確認できます。 PythonのScikit-Learnライブラリは、この機能を提供します。さらに、精度、精度、リコール、F1スコアなどのメトリックを使用して問題を分類し、回帰問題に平均平方エラーまたはR 2乗を使用できます。

監視された監視されていない学習にPythonを使用できますか?

はい、Pythonは監督された学習と監視されていない学習をサポートしています。 Scikit-Learnなどのライブラリを使用して、回帰や分類などの教師付き学習アルゴリズムを実装できます。教師のない学習には、K-Means、階層クラスタリング、DBSCANなどのクラスタリングアルゴリズムを使用できます。

機械学習モデルの過剰適合に対処する方法は?

正則化、早期停止、ニューラルネットワークのドロップアウトなどの手法を使用して、過剰適合を処理できます。また、袋詰めやブーストなどの統合された方法を使用して、過剰適合を減らすこともできます。

Pythonを使用した機械学習におけるデータの前処理の役割は何ですか?

データ前処理は、機械学習の重要なステップです。データのクリーンアップ、欠損値の処理、カテゴリ変数のエンコード、およびスケーリング機能が含まれます。 Pythonは、PandasやScikit-Learnなどのライブラリを提供し、効率的なデータの前処理を実行できます。

Pythonを使用して機械学習モデルのパフォーマンスを視覚化する方法は?

MatplotlibやSeabornなどのライブラリを使用して、モデルのパフォーマンスを視覚化できます。これらのライブラリは、混乱マトリックス、ROC曲線、学習曲線などのグラフをプロットする関数を提供します。

Pythonを自然言語処理(NLP)に使用できますか?

はい、Pythonは自然言語処理のためにNLTKやSpacyなどのライブラリを提供します。これらのライブラリは、トークン化、一部の語り方、名前付きエンティティ認識、センチメント分析などの機能を提供します。

Pythonを使用して構築された機械学習モデルを展開する方法は?

FlaskやDjangoなどのWebフレームワークを使用して、機械学習モデルを展開できます。大規模な展開には、AWS、Google Cloud、Azureなどのクラウドプラットフォームを使用できます。モデルの展開、スケーリング、監視のためのサービスを提供します。

以上がPythonを使用した機械学習のプライマーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。