教師あり学習の一般的なアルゴリズムは何ですか?どのように適用されますか?

教師あり学習の一般的なアルゴリズムは何ですか?どのように適用されますか?

教師あり学習とは何ですか?

教師あり学習は機械学習のサブセットであり、機械学習モデルの入力データにラベルが付けられ、それに基づいてトレーニングされます。したがって、教師ありモデルはモデルの出力を最もよく予測できます。

教師あり学習の背後にある概念は、教師が子供を指導するなど、現実の生活にも見られます。教師が子供たちに猫と犬の画像を認識することを教えたいとします。教師は、子供に猫か犬の画像を絶えず見せながら、その画像が犬なのか猫なのかを子供に伝えて指導します。

画像を表示して伝えるプロセスはデータのラベル付けと考えることができ、機械学習モデルはどのデータがどのカテゴリに属する​​かを伝えることでトレーニングされます。

教師あり学習は何に役立ちますか?教師あり学習は、回帰問題と分類問題の両方に使用できます。分類モデルを使用すると、アルゴリズムは特定のデータがどのグループに属するかを判断できます。例としては、True/False、Dog/Cat などが挙げられます。

回帰モデルは過去のデータに基づいて将来の値を予測できるため、従業員の給与や不動産の販売価格を予測するために使用されます。

この記事では、教師あり学習の一般的なアルゴリズムと、そのようなアルゴリズムに関する役立つチュートリアルをいくつか紹介します。

線形回帰

線形回帰は、入力値が与えられた場合に出力値を予測する教師あり学習アルゴリズムです。線形回帰は、ターゲット (出力) 変数が連続値を返す場合に使用されます。

線形アルゴリズムには、単純線形回帰と多重線形回帰の 2 つの主なタイプがあります。

単純線形回帰では、 1 つの独立 (入力) 変数のみを使用します。一例としては、身長から子供の年齢を予測することが挙げられます。

一方、多重線形回帰では、複数の独立変数を使用して最終結果を予測できます。一例としては、特定の不動産の場所、大きさ、需要などに基づいてその価格を予測することが挙げられます。

以下は線形回帰式である。

Python の例では、線形回帰を使用して、指定された x 値に対する y 値を予測します。

与えられたデータセットには、x と y の 2 つの列のみが含まれています。 y の結果は連続値として返されることに注意してください。

以下は、指定されたデータセットのスクリーンショットです。

Python を使用した線形回帰モデルの例

1. 必要なライブラリをインポートする

 numpyをnpとしてインポートする
pandasをpdとしてインポートする
matplotlib.pyplot を plt としてインポートします。
Sklearn から seaborn を SNS としてインポートする
sklearn.model_selection から linear_model をインポートします
train_test_split をインポートします。os をインポートします。

2. データセットの読み取りとサンプリング

データ セットを簡素化するために、50 行のデータ サンプルを取得し、データ値を 2 桁の有効数字に丸めました。

この手順を完了する前に、指定されたデータセットをインポートする必要があることに注意してください。

 df = pd.read_csv("../input/random-linear-regression/train.csv")
df = df.sample(50) df = round(df,2)

3. Null値と無限値をフィルタリングする

データセットに null 値や無限値が含まれている場合、エラーが発生する可能性があります。したがって、clean_dataset 関数を使用して、データセットからこれらの値を削除します。

 def clean_dataset(df):
assert isinstance(df, pd.DataFrame)、「df は pd.DataFrame である必要があります」
df.dropna(インプレース=True)
保持するインデックス = ~df.isin([np.nan, np.inf, -np.inf]).any(1)
df[indices_to_keep].astype(np.float64) を返します。
df = clean_dataset(df)

4. 自分が頼りにしている価値観と、依存していない価値観を選択する

データをDataFrame 形式に変換したことに注意してください。データフレーム データ型は、データを行と列に配置する 2 次元構造です。

5. データセットを分割する

データセットをトレーニング部分とテスト部分に分割します。テスト データセットのサイズは、データセット全体の 20% になるように選択されます。

random_state=1 に設定すると、モデルが実行されるたびに同じデータ分割が行われ、トレーニング データセットとテスト データセットがまったく同じになることに注意してください。

これは、モデルをさらに微調整したい場合に便利です。

 x_train、x_test、y_train、y_test = train_test_split(X、Y、テストサイズ=0.2、ランダム状態=1)

6.線形回帰モデルを構築する

インポートされた線形回帰モデルを使用すると、特定のモデルに対して取得した x および y トレーニング変数をバイパスして、モデル内で線形回帰アルゴリズムを自由に使用できます。

 lm = linear_model.LinearRegression() lm.fit(x_train,y_train)

7. データを散在的にプロットする

 df.plot(種類="散布図", x="x", y="y")

8.線形回帰直線プロットする

 plt.plot(X,lm.predict(X), 色="赤")

青い点はデータ ポイントを表し、赤い線はモデルによって描画された最適な線形回帰線です。線形モデル アルゴリズムは、結果をできるだけ正確に予測するために、常に最適な線を描画しようとします。

ロジスティック回帰

線形回帰と同様に、ロジスティック回帰は入力変数に基づいて出力値を予測します。 2 つのアルゴリズムの主な違いは、ロジスティック回帰アルゴリズムの出力がカテゴリ (離散) 変数であることです。

のために ロジスティック回帰を使用して2 つの異なるカテゴリ/タイプ分類するPython の特定のデータセットには、さまざまな花の複数の特徴が含まれます。

モデルの目的は、特定の花をIris-setosa、Iris-versicolor、または Iris-virginica のいずれかとして識別することです

以下は、指定されたデータセットのスクリーンショットです

Python を使用したロジスティック回帰モデルの例

1. 必要なライブラリをインポートする

 numpyをnpとしてインポートする
sklearn.model_selection から pandas を pd としてインポートします
train_test_split をインポートします。警告をインポートします。warnings.filterwarnings('ignore')

2. データセットをインポートする

データ = pd.read_csv('../input/iris-dataset-logistic-regression/iris.csv')

3. 自分が頼りにしている価値観と、依存していない価値観を選択する

スタンドアロン値(x)の場合、タイプ列を除く使用可能なすべての列が含まれます。信頼できる値(y)については、タイプ列のみを含めます。

 X = データ[['x0','x1','x2','x3','x4']]
y = データ[['type']]

4. データセットを分割する

データセットは 2 つの部分に分かれており、80% がトレーニング データセット、20% がテスト データセットです。

 X_train、X_test、y_train、y_test = train_test_split(X、y、テストサイズ=0.2、ランダム状態=1)

5.ロジスティック回帰モデルを実行する

linear_model ライブラリからロジスティック回帰アルゴリズム全体をインポートします。次に、X および y トレーニング データをロジスティック モデルに適合させます。

 sklearn.linear_model から LogisticRegression をインポートします
モデル = ロジスティック回帰(ランダム状態 = 0)
モデルをフィット(X_train, y_train)

6. モデルのパフォーマンスの評価

 lm.score(x_test, y_test) を印刷します

返された値は0.9845128775509371であり、これはモデルのパフォーマンスが高いことを示しています。

テストのスコアが上がると、モデルのパフォーマンスも上がることに注意してください。

7.チャートを描く

 matplotlib.pyplot を plt %matplotlib インラインとしてインポートします
plt.plot(範囲(len(X_test)), pred,'o',c='r')

出力グラフ:

ロジスティック プロットでは、赤い点は指定されたデータ ポイントを表します。ポイントは、Virginica、versicolor、setosa の花種の 3 つのカテゴリに明確に分けられます。

この手法を使用すると、ロジスティック回帰モデルはグラフ上の位置に基づいて花の種類を簡単に分類できます。

サポートベクターマシン

サポート ベクター マシン(SVM) アルゴリズムは、Vladimir Vapnik によって作成された、分類問題と回帰問題の両方を解決できるもう 1 つの有名な教師あり機械学習モデルです。実際、分類問題を解決するために使用されることが多いです。

SVM アルゴリズムは、指定されたデータ ポイントをさまざまなグループに分類できます。アルゴリズムはデータをプロットした最適な線を描いてデータをカテゴリに分けデータ間の関係を分析します

下の図に示すように、描画された線はデータセットを青と緑の 2 つの異なるグループに完全に分離します。

SVM モデルは、グラフの次元に応じて線または超平面を描画できます。行は 2D データセット、つまり 2 つの列のみを持つデータセットにのみ使用できます。

データセットを予測するために複数の特徴が使用される場合は、より高い次元が必要になります。データセットが 2 次元を超える場合、サポート ベクター マシン モデルは超平面を描画します。

このサポート ベクター マシン Python の例では、3 種類の異なる花が種に分類されます。独立変数には花のすべての特性が含まれ、従属変数は花が属する種です。

花の品種にはIris-setosa Iris-versicolor Iris-virginicaなどがあります

データセットのスクリーンショットは次のとおりです。

Python を使用したサポート ベクター マシン モデルの例

1.必要ライブラリをインポートする

 numpyをnpとしてインポートする
sklearn.model_selection から pandas を pd としてインポートします
sklearn.datasets から train_test_split をインポートします。
load_irisをインポートする

2.与えられたデータセットを読み込む

この手順を実行する前に、データセットをインポートする必要があることに注意してください。

データ = pd.read_csv('../input/iris-flower-dataset/IRIS.csv')

3. データ列を従属変数独立変数分割する

種の列を除くすべての列を含む X 値を独立変数として取得します。

従属変数y には、モデルによって予測された種の列のみが含まれます。

 x = data.drop('species', axis=1) y = data['species']

4.データセットをトレーニングデータセットテストデータセットに分割する

データセットは 2 つの部分に分かれており、データの 80% をトレーニング データセットに、20% をテスト データセットに配置します。

 X_train、X_test、y_train、y_test = train_test_split(X、y、test_size=0.2、random_state=1)

5. SVMをインポートしてモデルを実行する

サポートベクターマシンアルゴリズムがインポートされました。次に、上記の手順で受け取った X および y トレーニング データセットを使用して実行します

 sklearn.svm から SVC をインポートします
モデル = SVC( )
モデルをフィット(X_train, y_train)

6.モデルのパフォーマンスをテストする

モデル.スコア(X_テスト、y_テスト)

モデルのパフォーマンスを評価するために、スコア関数が使用されます。ステップ4で作成したxとyのテスト値をスコアメソッドに入力します。

返される値は0.96666666666667であり、モデルのパフォーマンスが高いことを示しています。

テストのスコアが上がると、モデルのパフォーマンスも上がることに注意してください。

その他の一般的な教師あり機械学習アルゴリズム

線形、ロジスティック、SVM アルゴリズムは非常に堅牢ですがいくつかの教師あり機械学習アルゴリズムについても説明します。

1.決定木

決定木アルゴリズムは、ツリー構造を使用して意思決定を行う教師あり機械学習モデルです。決定木は分類問題によく使用され、モデルはデータセット内の特定の項目がどのグループに属するかを決定できます。

使用されるツリー形式は反転ツリーの形式であることに注意してください。

2. ランダムフォレスト

より複雑なアルゴリズムであると考えられるランダム フォレスト アルゴリズムは多数の決定木を構築することで最終目標を達成します。

これは、複数の決定木を同時に構築し、それぞれが独自の結果を返し、それらを組み合わせてより良い結果を得ることを意味します。

分類問題の場合、ランダム フォレスト モデルは複数の決定木を生成し、大多数の木によって予測された分類グループに基づいて特定のオブジェクトを分類します。

このモデルは、単一のツリーによって引き起こされる過剰適合の問題を修正できます一方、ランダム フォレスト アルゴリズムは回帰にも使用できますが、望ましくない結果が生じる可能性があります。

3. k近傍

k 近傍(KNN) アルゴリズムは、与えられたすべてのデータを個別のグループにグループ化する教師あり機械学習手法です。

このグループ化は、異なる個人間の共通の特性に基づいています。 KNN アルゴリズムは、分類問題と回帰問題の両方に使用できます。

KNN の典型的な例は、動物の画像をさまざまなグループに分類することです

要約する

この記事では、教師あり機械学習とそれが解決できる 2 種類の問題を紹介します分類と回帰の問題について説明し、それぞれの出力データの種類の例をいくつか示します

線形回帰とは何か、どのように機能するかを詳しく説明し、独立した X 変数に基づいてY 値を予測するPython の具体的な例を示します

次に、ロジスティック回帰モデルを紹介し続いて、与えられた画像を特定の花の種に分類する分類モデルの例を示します

サポート ベクター マシン アルゴリズムでは、 3 つの異なる花の種の中から特定の花の種を予測するために使用できます最後に、決定木、ランダムフォレスト、K 近傍法など、他のよく知られている教師あり機械学習アルゴリズムがリストされています

この記事を勉強、仕事、または楽しみのために読んでいるかどうかにかかわらずこれらのアルゴリズムを理解することは機械学習の分野に入るための良いスタートになると信じています

機械学習の分野に興味があり、さらに詳しく学びたい場合は、そのようなアルゴリズムがどのように機能するか、そしてそのようなモデルを調整してパフォーマンスをさらに向上させる方法についてさらに詳しく調べることをお勧めします。

翻訳者紹介

51CTO コミュニティ エディター兼シニア アーキテクトの Cui Hao 氏は、ソフトウェア開発とアーキテクチャで 18 年の経験があり、分散アーキテクチャでは 10 年の経験があります。元HPの技術専門家。彼は情報を共有することに積極的で、60 万回以上読まれている人気の高い技術記事を多数執筆しています。 『分散アーキテクチャの原理と実践』の著者

原題:機械学習で使用される主要な教師あり学習アルゴリズム、著者: Kevin Vu

<<:  一般的なスマートカーの7つの技術についてお話ししましょう

>>:  南京科技大学とオックスフォード大学は、1行のコードでゼロショット学習法の効果を大幅に向上させるプラグアンドプレイ分類モジュールを提案した。

ブログ    
ブログ    
ブログ    

推薦する

今年のダブルイレブンでは、ドローン、無人運転車、ロボットがすべて配備されます!

近年、科学技術革命と産業変革の新たな局面の始まりに伴い、わが国の物流業界は情報化、デジタル化、インテ...

放射線科学における LLM の潜在的な応用は何ですか?数十の研究機関が共同で31の大型モデルをテスト

近年、大規模言語モデル (LLM) は自然言語処理 (NLP) の分野で革新の波を起こしています。大...

ロボットによるカスタマーサービスが本物か偽物かを見分けるのは難しいですか? !

[51CTO.com 速訳] 海外メディアの報道によると、ニュージーランドのソウルマシーンズ社は最...

LIMEを使用してさまざまな機械学習モデルのコード例を説明する

機械学習モデルはますます洗練され、正確になってきていますが、その不透明性は依然として大きな課題となっ...

未来の戦争:AI を搭載した米空軍の偵察機はすでに飛行している...

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

いつ表面的に調べ、いつ深く掘り下げるべきか - 機械学習は1ページで説明できるものではありません

機械学習、ディープラーニング、人工知能の台頭は議論の余地のない事実となり、コンピュータサイエンスの分...

自動運転の安全上のリスクはどこから来るのでしょうか?

最近、当社の自動運転デビューがニュースで取り上げられており、ADS はついに謎の組織ではなくなりまし...

...

AIがビールの品質をコントロールするので、コスト効率と信頼性が高まります。

海外メディアの報道によると、食品・飲料業界では人工知能やモノのインターネット技術がますます頻繁に利用...

調査レポート:2021年にAI機能を導入する企業が増加

[[360189]]今年、ほとんどの企業は、新型コロナウイルス感染症による混乱に対処し、リモートワー...

AIが認知症患者の自立した生活にどのように役立つか

[[279905]]写真はインターネットから照明や音楽を Alexa や Siri などの音声制御テ...

TensorFlow 2 入門ガイド。初心者必見です!

Tensorflow とは何ですか? TensorFlow は Google が立ち上げたディープ...

機械学習を通じて実際のビジネス価値を掘り出すにはどうすればよいでしょうか?

運用効率の向上から継続的なイノベーションの実現まで、機械学習はビジネス開発に不可欠なものとなっていま...

ドバイが無人「空飛ぶ車」を試験:世界初のドローン旅客サービスとなる見込み

[[204952]]ボロコプター、ドバイで無人空飛ぶ車のテストを開始ロイター通信は北京時間9月26日...