始めませんか 機械学習?
完全な初心者向けのシンプルで簡単なチュートリアルを作成しました。 一緒に、機械学習モデルのトレーニングの基本的な手順について説明します。
モデルをトレーニングする手順を XNUMX つずつ説明しながら、機械学習の問題の非常に基本的な例も示します。 従う場合は、このサンプル データ セットを次の URL からダウンロードできます。 .
これは、機械学習を始めるのに役立つサンプル データセットにすぎません。
好きな音楽を定義した、さまざまな年齢や性別の人々の 18 の値があります。 「年齢」と「性別」の特徴を使って、どのジャンルの音楽が好きかを当ててみます。
注: このデータセットでは、性別に 1 と 0 が女性と男性として割り当てられています。
ただし、例に従いたくない場合でも、まったく問題ありません。 これらすべての手順を詳しく説明します。 それでは、飛び込みましょう!
最初に知っておくべきこと
モデルのトレーニングの手順に入る前に、いくつかの点を明確にしましょう。 機械学習は 人工知能 データから学習できるアルゴリズムの開発に焦点を当てた分野。
これを行うために、機械学習モデルは、モデルに正しい予測を行う方法を教えるデータセットでトレーニングされます。 分類 新しい、以前は知られていないデータ。
それで、これらのモデルは何ですか? あ 機械学習モデル コンピュータがデータの予測や選択を生成するために使用するレシピに似ています。
モデルは、レシピのように、一連の指示に従ってデータを評価し、データで見つかったパターンに基づいて予測または判断を生成します。 モデルがトレーニングされるデータが多いほど、その予測はより正確になります。
どのようなモデルをトレーニングできますか?
基本的な機械学習モデルとは何かを見てみましょう。
- 線形回帰: XNUMX つ以上の入力変数から連続ターゲット変数を予測するモデル。
- ニューラル ネットワーク: データ内の複雑なパターンを検出することを学習できるリンクされたノードのネットワーク。
- 決定木: 一連の分岐する if-else ステートメントに基づいて構築された意思決定アプローチ。
- クラスタリング: 類似性に基づいて比較可能なデータ ポイントをグループ化する一連のモデル。
- ロジスティック回帰: ターゲット変数が XNUMX つの潜在的な値を持つバイナリ分類問題のモデル。
- 決定木: 一連の分岐する if-else ステートメントに基づいて構築された意思決定アプローチ。
- ランダム フォレスト: 多数の決定木で構成されるアンサンブル モデル。 それらは、分類および回帰アプリケーションに頻繁に使用されます。
- K-Nearest Neighbors: トレーニング セット内の k-nearest データ ポイントを使用してターゲット変数を予測するモデル。
問題とデータセットに応じて、状況に最も適した機械学習モデルを決定します。 ただし、これについては後で説明します。 それでは、モデルのトレーニングを開始しましょう。 すでにダウンロードされていることを願っています データセット 私たちの例に従いたい場合。
また、私は持っていることをお勧めします ジュピターノート ローカル マシンにインストールされ、機械学習プロジェクトに使用されます。
1: 問題を定義する
の最初の段階 機械学習のトレーニング モデルは解決すべき問題を定義しています。 これには、予測する変数 (ターゲット変数と呼ばれる) と、それらの予測を生成するために使用される変数 (特徴または予測変数と呼ばれる) を選択する必要があります。
また、対処しようとしている機械学習の問題の種類 (分類、回帰、クラスタリングなど) と、モデルをトレーニングするために収集または取得する必要があるデータの種類も決定する必要があります。
使用するモデルの種類は、解決しようとしている機械学習の問題の種類によって決まります。 分類、回帰、およびクラスタリングは、 機械学習の課題. メールがスパムかどうかなど、カテゴリ変数を予測する場合は、分類を使用します。
家の価格など、連続変数を予測する場合は、回帰を使用します。 クラスタリングは、共通点に基づいて比較可能なデータ項目をまとめるために使用されます。
私たちの例を見ると; 私たちの課題は、性別と年齢からその人の好みの音楽スタイルを判断することです。 この例では、18 人のデータセットと、年齢、性別、好きな音楽スタイルに関する情報を使用します。
2. データを準備する
問題を特定したら、モデルをトレーニングするためのデータを準備する必要があります。 これには、データのクリーニングと処理が伴います。 そのため、それが次の形式であることを確認できます。 機械学習アルゴリズム 使える。
これには、欠損値の削除、カテゴリ データの数値データへの変換、すべての特性が同じスケールになるようにデータをスケーリングまたは正規化するなどのアクティビティが含まれる場合があります。
たとえば、欠損値を削除する方法は次のとおりです。
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
ちょっとしたメモ: 行に o “import pandas as pd",
Pandas ライブラリをインポートし、エイリアス「pd」を割り当てて、コードの後半でその関数とオブジェクトを簡単に参照できるようにします。
Pandas は、特に構造化データまたは表形式データを操作する場合に、データの操作と分析のための Python のよく知られたモジュールです。
音楽のジャンルを決定する例。 最初にデータセットをインポートします。 music.csv という名前を付けましたが、好きな名前を付けることができます。
機械学習モデルをトレーニングするためのデータを準備するために、データを属性 (年齢と性別) と目的 (音楽ジャンル) に分割しました。
さらに、データを 80:20 のトレーニング セットとテスト セットに分割して、モデルのパフォーマンスを評価し、過剰適合を回避します。
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. 機械学習モデルを選択します。
データを準備したら、タスクに適した機械学習モデルを選択する必要があります。
デシジョン ツリー、ロジスティック回帰、サポート ベクター マシン、ニューラル ネットワークなど、いくつかのアルゴリズムから選択できます。 選択するアルゴリズムは、答えようとしている問題の種類、所有するデータの種類、パフォーマンスのニーズによって決まります。
この例では、分類問題 (カテゴリ データの予測) を扱っているため、決定木分類子を使用します。
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
デシジョン ツリー クラシファイアがどのように機能するかを視覚化したものを次に示します。
4.モデルをトレーニングする
許容可能な機械学習アルゴリズムを選択したら、モデルのトレーニングを開始できます。 これには、以前に生成されたデータを利用して、以前には見られなかった新鮮なデータを予測する方法についてアルゴリズムを教育することが必要です。
アルゴリズムは、トレーニング中に内部パラメーターを変更して、予測値とトレーニング データの実際の値の差を最小限に抑えます。 トレーニングに使用されるデータの量と、アルゴリズムの特定のパラメーターはすべて、結果として得られるモデルの精度に影響を与える可能性があります。
特定の例では、メソッドを決定したので、トレーニング データを使用してモデルをトレーニングできます。
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. モデルを評価する
モデルがトレーニングされた後、新しいデータで評価して、正確で信頼できることを確認する必要があります。 これには、トレーニング中に利用されなかったデータを使用してモデルをテストし、その予測値をテスト データの実際の値と比較する必要があります。
このレビューは、オーバーフィッティングやアンダーフィッティングなどのモデルの欠陥を特定するのに役立ち、必要な微調整につながる可能性があります。
テスト データを使用して、モデルの正確性を評価します。
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
精度スコアは今のところそれほど悪くありません。 🙂 精度スコアを向上させるために、いつでもデータをさらにきれいにするか、さまざまな機械学習モデルを試して、どれが最高のスコアを与えるかを確認できます.
6. モデルの微調整
モデルの効率が十分でない場合は、さまざまなアルゴリズム パラメーターを変更するか、新しいアルゴリズムを完全に試すことで微調整できます。
この手順には、代替学習率の実験、正則化設定の変更、またはニューラル ネットワークの隠れ層の数またはサイズの変更が含まれる場合があります。
7. モデルを使用する
モデルのパフォーマンスに満足したら、それを使用して新しいデータの予測を生成できます。
これには、新しいデータをモデルにフィードし、モデルの学習したパラメーターを利用してそのデータの予測を生成するか、モデルをより広範なアプリケーションまたはシステムに統合することが必要になる場合があります。
モデルの精度に満足したら、モデルを使用して新しいデータの予測を生成できます。 性別と年齢のさまざまな値を試すことができます。
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
要約
最初の機械学習モデルのトレーニングが完了しました。
お役に立てば幸いです。 線形回帰やランダム フォレストなどのさまざまな機械学習モデルを使用してみることができます。
には多くのデータセットと課題があります Kaggle コーディングと機械学習の理解を深めたい場合。
コメントを残す