Menu
CoddyTech

MLモデルとは何か

Coddyの「機械学習入門」コースのレッスン 3/19。

機械学習モデルは、過去のデータに基づいて予測を行うことを目的としています。これを効果的に行うには、モデルはデータセットの統計的特性を理解する必要があります。この理解は、単にデータ分布を記述するアルゴリズムや数学的関数をモデルに提供するだけでは達成できません。

代わりに、モデルはトレーニングを通じてこれらの特性を学習しなければなりません。さらに、各データセットには固有の統計的特性があります。したがって、個別のデータセットごとに個別のモデルをトレーニングする必要があります。

 

学習フェーズは fitting または fit と呼ばれます。モデルがデータ分布を学習した後、これまでに見たことのない新しいデータを入力してその出力を予測することができます。このフェーズは predicting または predict と呼ばれます。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

challenge icon

チャレンジ

簡単

このチャレンジでは、最も単純な教師あり学習の機械学習モデルを作成します。このモデルは実業界で使われることはありません。むしろ、このモデルの目的は、実際の機械学習モデルがどのようなものかを示すことにあります。

対応する X の値に対して、最も頻繁に現れる y の値を返すモデルを作成してください。

手順: 

  • fit メソッドは、各 X に対して最も頻繁に現れる y をカウントし、その結果を self.mode 変数に格納します。
    例えば、次のようなデータセットの場合:

    <strong>X</strong>ABAAB
    <strong>Y</strong>11011

    self.mode は {"A": 1, "B": 1} を保持する必要があります。

  • predict メソッドは X_test のリストを受け取り、同じ長さのリストを返します。返されるリストの各値は、fit フェーズで学習した self.mode を使用して、X に対応する予測された y です。
    例えば、self.mode が {"A": 1, "B": 1} を保持しており、X_train が ['A', 'B', 'C'] である場合、出力は [1, 1, None] となる必要があります。

テストケースに合格する方法:

X_train、y_train、および X_test のリストを受け取る train_and_predict という名前の関数を作成してください。この関数は以下の手順に従います:

  • X_train と y_train を使用して fit メソッドで学習する
  • X_test のラベルを予測する
  • 予測されたラベルを返す

自分で試してみよう

import numpy as np
np.set_printoptions(legacy='1.13')

class SimpleModel:
    def __init__(self):
        self.mode = {}

    def fit(self, X, y):
        # ここにコードを記述してください
        

    def predict(self, X):
        # ここにコードを記述してください

def train_and_predict(X_train, y_train, X_test):
    model = SimpleModel()
    # X_trainとy_trainを使用してモデルを適合させます
    
    # X_testのラベルを予測します
    
    # 予測されたラベルを返します

機械学習入門のすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ