ホームページ >テクノロジー周辺機器 >IT業界 >Pythonを使用した機械学習のプライマー
過去10年間、機械学習は科学研究室から日常のWebおよびモバイルアプリケーションに移行しました。機械学習により、アプリケーションは、画像のオブジェクトや顔の検出、スパムやヘイトスピーチの検出、電子メールおよびメッセージアプリケーションのスマートな返信の生成など、以前に難しいタスクを実行できます。
ただし、機械学習の実行は、古典的なプログラミングとは根本的に異なります。この記事では、機械学習の基本を学び、花の測定に基づいて花の種を予測できる基本モデルを作成します。
機械学習アルゴリズムにはさまざまなカテゴリがあり、それぞれが特定の問題を解決できます。
監視された学習
監視された学習モデルは、回帰または分類の問題を解決できます。回帰モデルは、数量(販売された商品の量や在庫の価格など)を予測しますが、分類問題は入力データのカテゴリ(猫/犬/魚/鳥/鳥、詐欺/非フラードなど)を決定しようとします。
画像の分類、顔の検出、株価の予測、販売予測は、監督された学習が解決できる問題の例です。
いくつかの一般的な監視された学習アルゴリズムには、線形回帰とロジスティック回帰、サポートベクターマシン、決定ツリー、人工ニューラルネットワークが含まれます。
監視されていない学習は、データがあるが結果ではなくパターンを探している問題に適しています。たとえば、類似性に基づいてセグメントにグループ化することをお勧めします。これは、教師のない学習におけるクラスタリングと呼ばれます。または、ビジネスの通常の活動から逸脱する悪意のあるネットワークトラフィックを検出することもできます。これは異常検出と呼ばれ、別の監視されていない学習タスクです。監視されていない学習は、無関係な機能を削除することで機械学習タスクを簡素化する手法である次元削減にも使用できます。
監視されていない人気のない学習アルゴリズムには、K-meanクラスタリングと主成分分析(PCA)が含まれます。
強化学習は、エージェントが環境と対話することにより目標を達成しようとする機械学習の分野です。強化学習には、アクション、ステータス、および報酬が含まれます。訓練されていない強化学習エージェントは、ランダムアクションから始まります。各アクションは、環境の状態を変更します。エージェントが希望の状態で自分自身を見つけた場合、彼は報酬を受け取ります。エージェントは、最も報酬を生成する一連のアクションと状態を見つけようとします。
強化学習は、GoogleのAlphagoやAlphastarなどの推奨システム、ロボット工学、およびゲームロボットで使用されます。
この記事では、機械学習の最も人気のある分野であり、その結果が評価が容易であるため、監督された学習に焦点を当てます。 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:問題を定義します
これは監督分類の問題です。さまざまな花標本とそれらの対応する種の測定値のリストを収集する必要があります。次に、このデータを使用して、測定を種にマッピングできる機械学習モデルをトレーニングおよびテストします。
機械学習の最も難しい部分の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>
これは、モデルがトレーニングデータに過剰になっていないことを確認するために行われます。オーバーフィッティングとは、機械学習モデルがトレーニングの例でうまく機能するが、目に見えないデータでは機能しない場合です。過剰適合は、間違った機械学習アルゴリズムを選択し、モデルの誤解、トレーニングデータの低下、またはトレーニングの例が少なすぎることによって引き起こされる場合があります。
解決している問題の種類と持っているデータの量に応じて、テストセットに割り当てるデータの量を決定する必要があります。通常、多くのデータ(約数万の例)がある場合、小さなサンプルの約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>
データの準備が整ったので、機械学習モデルを作成し、トレーニングセットでトレーニングできます。私たちが扱っている分類の問題を解決できる多くの異なる機械学習アルゴリズムがあります。私たちの場合、「ロジスティック回帰」アルゴリズムを使用します。これは非常に高速で、あまりにも多くの次元を含まない単純な分類問題に適しています。
<code>pip install scikit-learn</code>
これは約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)
機械学習にPythonを使用することを学習するには、Pythonプログラミングの基本的な理解が必要です。また、Numpy、Pandas、Matplotlibなどのライブラリに精通することは有益です。さらに、統計と確率の基本的な理解は、機械学習アルゴリズムのコアを形成するため重要です。
Pythonは、そのシンプルさと読みやすさのため、最も人気のある機械学習言語の1つです。 Scikit-Learn、Tensorflow、Pytorchなど、機械学習モデルの開発を簡素化する幅広いライブラリとフレームワークがあります。 RやJavaなどの他の言語も機械学習で使用されていますが、Pythonの広範なエコシステムは多くの人にとって最初の選択肢です。
PythonのScikit-Learnライブラリは、さまざまな機械学習アルゴリズムの実装を提供します。一般的に使用されるアルゴリズムには、線形回帰、ロジスティック回帰、決定ツリー、ランダムフォレスト、サポートベクターマシン、k-nearest Neightが含まれます。深い学習には、TensorflowやPytorchなどのライブラリを使用できます。
クロス検証やトレーニングテストの分割などの手法を使用して、モデルのパフォーマンスを確認できます。 PythonのScikit-Learnライブラリは、この機能を提供します。さらに、精度、精度、リコール、F1スコアなどのメトリックを使用して問題を分類し、回帰問題に平均平方エラーまたはR 2乗を使用できます。
はい、Pythonは監督された学習と監視されていない学習をサポートしています。 Scikit-Learnなどのライブラリを使用して、回帰や分類などの教師付き学習アルゴリズムを実装できます。教師のない学習には、K-Means、階層クラスタリング、DBSCANなどのクラスタリングアルゴリズムを使用できます。
Pythonを使用した機械学習におけるデータの前処理の役割は何ですか?
Pythonを使用して機械学習モデルのパフォーマンスを視覚化する方法は?
Pythonを自然言語処理(NLP)に使用できますか?
FlaskやDjangoなどのWebフレームワークを使用して、機械学習モデルを展開できます。大規模な展開には、AWS、Google Cloud、Azureなどのクラウドプラットフォームを使用できます。モデルの展開、スケーリング、監視のためのサービスを提供します。
以上がPythonを使用した機械学習のプライマーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。