MLのワークフロー:データから予測まで
生データの収集とクリーニングから、モデルの訓練、評価、デプロイまで、エンドツーエンドのパイプラインを順に学びます。
「MLのワークフロー:データから予測まで」はCoddyKit上の無料Machine Learning Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMachine Learning Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Machine Learning Academyコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
The End-to-End ML Pipeline
Building ML is more than training a model — it's a full pipeline. Knowing all the stages keeps you from rushing straight to modelling too soon.
Stage 1: Define the Problem
Stage one is to define the problem: what are you predicting, why does it matter, and how will you measure success? Vague goals make vague models.
Stage 2: Collect and Load Data
Next, collect and load your data from files, databases, or APIs — Pandas is the go-to tool. Always inspect the raw data before doing anything else.
import pandas as pd
# Load data from a CSV file
df = pd.read_csv('housing.csv')
# First inspection
print(df.shape) # (rows, columns)
print(df.dtypes) # data types per column
print(df.head()) # first 5 rows
print(df.describe()) # summary statisticsStage 3: Exploratory Data Analysis
Exploratory Data Analysis is the detective work: plot distributions, check correlations, and hunt for outliers before you build any model.
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
df = pd.read_csv('housing.csv')
# Distribution of target variable
df['price'].hist(bins=50)
plt.title('House Price Distribution')
plt.show()
# Correlation heat map
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()
# Check for missing values
print(df.isnull().sum())Stage 4: Preprocess the Data
Preprocessing turns messy data into a clean feature matrix — filling gaps, scaling, and encoding. Golden rule: fit only on training data to avoid leakage.
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import pandas as pd
import numpy as np
df = pd.read_csv('housing.csv')
X = df.drop('price', axis=1)
y = df['price']
# Split first, then fit scaler ONLY on train
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train) # fit + transform on train
X_test_scaled = scaler.transform(X_test) # transform only on testStage 5: Train the Model
Now train the model: in scikit-learn it's one fit() call. Start simple with a baseline like a linear model before reaching for anything complex.
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
# Simple baseline first
linear_model = LinearRegression()
linear_model.fit(X_train_scaled, y_train)
# More complex model
rf_model = RandomForestRegressor(n_estimators=100, random_state=42)
rf_model.fit(X_train_scaled, y_train)
print('Linear model trained.')
print('Random Forest trained.')Stage 6: Evaluate the Model
Evaluate on held-out test data the model never saw. Pick the right metric — MAE and RMSE for numbers, accuracy and F1 for categories.
from sklearn.metrics import mean_absolute_error, r2_score
import numpy as np
y_pred = linear_model.predict(X_test_scaled)
mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
rmse = np.sqrt(((y_test - y_pred) ** 2).mean())
print(f'MAE: {mae:.2f}')
print(f'RMSE: {rmse:.2f}')
print(f'R2: {r2:.3f}')Stage 7: Iterate and Improve
The first model is rarely the best. ML is iterative: based on your results, gather more data, engineer features, or tune settings — then try again.
Stage 8: Deploy the Model
Deployment makes your trained model available to real users — often as a web API, a batch job, or an on-device model in an app. A notebook alone adds no value.
import joblib
# Save the trained model
joblib.dump(linear_model, 'house_price_model.pkl')
print('Model saved.')
# Later, load and predict in production
loaded_model = joblib.load('house_price_model.pkl')
prediction = loaded_model.predict(X_test_scaled[:1])
print(f'Prediction: ${prediction[0]:,.0f}')Stage 9: Monitor and Retrain
Deployment isn't the finish line. Data shifts over time, so you need monitoring to catch silent performance drops and trigger retraining when needed.
The Workflow as a Scikit-learn Pipeline
A scikit-learn Pipeline chains preprocessing and modelling into one object. It prevents leakage and makes deployment cleaner — save and load just one thing.
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
# Chain preprocessing and model in one object
pipeline = Pipeline([
('scaler', StandardScaler()),
('model', LinearRegression())
])
# fit() applies scaler then trains the model
pipeline.fit(X_train, y_train)
# predict() applies scaler then predicts
y_pred = pipeline.predict(X_test)
print('Pipeline prediction done.')Quick Check
Test your understanding of Machine Learning with Python concepts from this lesson.
Lesson Recap
Great progress! The ML workflow runs from problem definition to monitoring, preprocessing fits on training data only, and deployment is the start, not the end.
よくある質問
「MLのワークフロー:データから予測まで」レッスンは無料ですか?
はい。「MLのワークフロー:データから予測まで」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Machine Learning Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Machine Learning Academyコースには全4レッスンが含まれています。
「MLのワークフロー:データから予測まで」で何を学びますか?
生データの収集とクリーニングから、モデルの訓練、評価、デプロイまで、エンドツーエンドのパイプラインを順に学びます。 ブラウザで直接実行するハンズオンコードでMachine Learning Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Machine Learning Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのMachine Learning Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「MLのワークフロー:データから予測まで」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このMachine Learning Academyレッスンでコードを書いて実行できますか?
はい。すべてのMachine Learning Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 従来のプログラミングと機械学習
- 教師あり学習、教師なし学習、強化学習
- MLのワークフロー:データから予測まで
- 実世界のML:用途と限界