プログラミング PR

Pythonで簡単に実装できる機械学習アルゴリズム10選

Pythonで簡単に実装できる機械学習アルゴリズム10選
記事内に商品プロモーションを含む場合があります

こんにちは!白久まとです。

この記事ではPythonで簡単に実装できる機械学習アルゴリズム10選を紹介します。
以下の10のアルゴリズムを紹介し、それぞれのアルゴリズムに対してPythonでの実装方法を示します。

Pythonで簡単に実装できる機械学習アルゴリズム10選
  1. 線形回帰(Linear Regression)
  2. ロジスティック回帰(Logistic Regression)
  3. K近傍法(K-Nearest Neighbors)
  4. 決定木(Decision Tree)
  5. ランダムフォレスト(Random Forest)
  6. 支持ベクタマシン(Support Vector Machine)
  7. K平均法(K-Means)
  8. PCA(Principal Component Analysis)
  9. Naive Bayes(ナイーブベイズ)
  10. 神経ネットワーク(Neural Network)

Pythonを使った機械学習プログラミングのスキルは幅広い業界で強い需要があります。
機械学習は業務への高い適用性や汎用性を持っているからです。
年収アップに繋がる重要なスキルの1つなので、ぜひ身につけることを検討してみてください。

Pythonで簡単に実装できる機械学習アルゴリズム10選

Pythonで簡単に実装できる機械学習アルゴリズム10選

①線形回帰(Linear Regression)

線形回帰は、2つの変数間の関係を表す直線を求める方法です。
与えられたデータセットから、最も良い近似直線を求めることが目的です。
このアルゴリズムは、予測、分類、多変量解析などのタスクでよく使われます。

Pythonで簡単に実装できる線形回帰の例を以下に示します。ここでは、Scikit-learnライブラリを使用します。

この例では、100個のトレーニングデータを生成しています。
次に、LinearRegressionクラスを使って線形回帰モデルを生成し、その係数と切片を表示します。
最後に、新しい入力を使って予測値を計算し、トレーニングデータと予測値をグラフにプロットしています。

プロット結果を以下に示します。

Pythonで簡単に実装できる機械学習アルゴリズム10選

②ロジスティック回帰(Logistic Regression)

ロジスティック回帰は、2値分類のタスクに使用されます。
このアルゴリズムは、特徴量と目的変数の関係を説明するロジスティック関数を使用して、入力データから予測を行います。

Pythonで簡単に実装できるロジスティック回帰の例を以下に示します。
ここでは、Scikit-learnライブラリを使用します。

この例では、PandasとNumPyライブラリを使用してデータを読み込み、特徴量とラベルを抽出します。
次に、トレーニングセットとテストセットにデータを分割します。
次に、Scikit-learnのLogisticRegressionクラスを使用してロジスティック回帰モデルをトレーニングします。
最後に、予測結果を評価するために、Accuracy、Precision、Recall、F1-scoreメトリックを使用します。
データセットの読み込みに使用したdata.csvは任意の数の特徴量に対し、1つの目的変数を持つものであれば使用できます。

③K近傍法(K-Nearest Neighbors)

K近傍法(KNN)は、機械学習において分類や回帰に使われるアルゴリズムです。
K近傍法は、予測対象のサンプルに対して、そのサンプルに近いK個のトレーニングサンプルから予測値を算出することで、分類や回帰を行います。

以下は、Irisデータセットを使ったK近傍法の事例です。
Irisデータセットは、3種類のアヤメの特徴量(がく片の長さ、がく片の幅、花弁の長さ、花弁の幅)から、どの種類のアヤメかを判別するタスクを行います。

このコードでは、まずIrisデータセットを読み込んでいます。
次に、訓練データとテストデータに分割しています。
次に、K近傍法のモデルを作成します。
訓練データを使ってモデルを学習し、テストデータを使って予測します。
最後に、予測結果を評価しています。

④決定木(Decision Tree)

決定木は分類や回帰に用いられるアルゴリズムです。
このアルゴリズムは、特徴量とラベルを学習して、予測を行うモデルを構築します。
決定木は、再帰的に特徴量を分割することによって、各ノードを作り、最終的に分類結果を出力することができます。

以下がPythonで簡単に実装できる決定木の事例です:

上記のコードでは、pandasライブラリを使ってデータを読み込んでいます。
次に、特徴量とラベルを分離して、訓練データとテストデータに分割しています。
決定木モデルを構築するために、sklearnのDecisionTreeClassifierクラスを使います。
最後に、テストデータを用いて予測を行い、予測精度を評価することができます。

データセットとして読み込んだdata.csvの例を以下に示します。

この例では、4つの特徴量 (年齢、収入、学生かどうか、クレジットレーティング) があり、最後の列は予測対象のターゲットです。
このデータを用いて決定木モデルを構築し、テストデータを用いて予測精度を評価することができます。

⑤ランダムフォレスト(Random Forest)

ランダムフォレストは、複数の決定木を組み合わせたアンサンブル学習モデルです。
このモデルは、個々の決定木の推論結果を集約して、より確かな予測結果を生成することができます。

以下は、Pythonで簡単に実装できるランダムフォレストの事例の計算コードです。

上記のコードでは、Pandasライブラリを使ってCSVファイルからデータを読み込み、特徴量とラベルを分離しています。
次に、訓練データとテストデータに分割します。
その後、Scikit-learnライブラリのRandomForestClassifierを使ってランダムフォレストモデルを構築します。
最後に、テストデータを用いて予測を行い、予測精度を評価します。

データセットとして読み込んだdata.csvの例を以下に示します。

このデータを使用して、上記のPythonコードを実行すると、予測精度が出力されます。

⑥支持ベクタマシン(Support Vector Machine)

支持ベクタマシン (Support Vector Machine, SVM) は分類や回帰のタスクを解くための機械学習アルゴリズムの1つです。
以下は Python で SVM を実装する例です。

この例では、Pandas ライブラリを使って CSV ファイルからデータを読み込んでいます。
特徴量とラベルを分離して、訓練データとテストデータに分割します。
SVM モデルを構築するために、SVC クラスを使っています。
訓練データを用いてモデルを学習し、テストデータを用いて予測を行います。
最後に予測精度を accuracy_score 関数で評価しています。

データセットとして読み込んだdata.csvの例を以下に示します。

このデータはアヤメの品種を分類するタスクです。
各行は一つのアヤメの情報を表しています。
sepal_length, sepal_width, petal_length, petal_widthはアヤメの特徴量を表し、targetはアヤメの品種のラベルです(0または1)。

⑦K平均法(K-Means)

K平均法は、unsupervised learningに分類される手法で、データをいくつかのグループに分割することを目的としています。

以下は、K平均法を使って、アイリスデータセットを分類する例です。

この例では、アイリスデータセットを3つのグループに分割しています。
分類結果は以下のような散布図で表示されます。

Pythonで簡単に実装できる機械学習アルゴリズム10選

⑧PCA(Principal Component Analysis)

PCA (Principal Component Analysis)は、主成分分析とも呼ばれ、データを圧縮して次元削減するためのテクニックの一つです。
PCAは主に、高次元のデータを分析する際に使用されます。
これは、高次元のデータを2次元または3次元のグラフにプロットするために使用されます。
scikit-learnライブラリを使用すると簡単に実装することができます。

このコードでは、irisデータセットをロードしてPCAを実行しています。
PCAのn_componentsパラメータは、次元削減後の次元数を指定します。
この例では2次元に次元削減され、削減後のデータをプロットしています。

Pythonで簡単に実装できる機械学習アルゴリズム10選

⑨ナイーブベイズ(Naive Bayes)

Naive Bayesは、特徴量が独立していると仮定することによって予測結果を導出する分類アルゴリズムです。
Naive Bayesは以下の3つの種類があります。

  • Gaussian Naive Bayes
  • Multinomial Naive Bayes
  • Bernoulli Naive Bayes

ここでは、Gaussian Naive Bayesの例を示します。
scikit-learnライブラリを使用すると簡単に実装することができます。

このコードでは、Irisデータセットをロードして訓練データとテストデータに分割しています。
次に、Gaussian Naive Bayesのモデルを作成して、訓練データでモデルを訓練しています。
最後に、テストデータを使ってモデルの評価と予測を行っています。

⑩神経ネットワーク(Neural Network)

ニューラルネットワークは、人工知能の基礎となるモデルです。
scikit-learnライブラリを使用することもできますが、TensorFlowやPyTorchなどのフレームワークを使用することが一般的です。
ここでは、Kerasという高水準のDeep Learningフレームワークを使用します。

このように、Kerasを使ってニューラルネットワークのモデルを構築し、訓練することができます。
学習させたモデルを使って、任意の入力値に対して予測値を出すことができます。

目的にあった機械学習アルゴリズムを選択しよう!

Pythonで簡単に実装できる機械学習アルゴリズム10選

この記事ではPythonで簡単に実装できる機械学習アルゴリズム10選を紹介しました。
機械学習アルゴリズムを選択する際の指標を以下に示すので参考にしてみてください。

機械学習アルゴリズムを選択するときの考え方
  1. 目的:
    まず、このモデルを使用する目的を明確にすることが大切です。
    分類、回帰、クラスタリングなど、さまざまなタスクに対応するモデルがあります。
  2. データの種類:
    あなたのデータが数値データかカテゴリデータかに応じて、適切なアルゴリズムを選択する必要があります。
  3. 特徴量の数:
    特徴量の数が多いか少ないかに応じて、適切なアルゴリズムを選択する必要があります。
  4. 分類タスクの場合:
    二項分類問題であれば、ロジスティック回帰、サポートベクトルマシン、ナイーブベイズなどが適切な選択肢です。
    多項分類問題であれば、決定木、ランダムフォレスト、ニューラルネットワークなどが適切な選択肢です。
  5. 回帰タスクの場合:
    線形回帰、SVMなどが適切な選択肢です。
  6. クラスタリングタスクの場合:
    K平均法、PCAなどが適切な選択肢です。
  7. 計算速度:
    一部のアルゴリズム(例えば、決定木)は他のアルゴリズム(例えば、サポートベクトルマシン)よりも高速に動作しますが、正確性は低くなります。
  8. 予測精度:
    最も重要なことは、アルゴリズムが予測タスクにおいて適切な精度を達成できることです。
ABOUT ME
469matt
専業投資家になりました。業績の安定した優良株が好きです。まったり生きています。趣味は読書と投資、ときどき野菜づくり。前職は研究開発をやっていました。