特徴量エンジニアリングと選択
モデルの予測性能を高めるための手法を学びます。
「特徴量エンジニアリングと選択」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン4/6です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全6レッスンが含まれています。
特徴量エンジニアリングと特徴量選択
特徴量エンジニアリングと特徴量選択
特徴量エンジニアリングと特徴量選択は、効果的な機械学習モデルを構築するうえで重要な手順です。これらのプロセスでは、新しい特徴量を作成し、最も関連性の高い特徴量を選択して、モデルの性能を向上させます。
このレッスンでは、予測精度を高めるための特徴量エンジニアリングと特徴量選択の手法を学びます。

特徴量エンジニアリングとは
特徴量エンジニアリングとは
特徴量エンジニアリングでは、生データから新しい特徴量を作成し、機械学習モデルの効果を高めます。例として、次のようなものがあります。
- タイムスタンプから日、月、時刻などの時間ベースの特徴量を抽出する。
- 複数の特徴量を組み合わせて新しい特徴量を作成する。
- 数値特徴量をスケーリングして、値の範囲を標準化する。
新しい特徴量の作成
新しい特徴量の作成
既存のデータに基づいて新しい特徴量を作成してみましょう。
# Example: Creating new features
import pandas as pd
data = {'Timestamp': ['2025-01-01 12:00:00', '2025-01-02 15:30:00']}
df = pd.DataFrame(data)
df['Hour'] = pd.to_datetime(df['Timestamp']).dt.hour
df['Day'] = pd.to_datetime(df['Timestamp']).dt.day
print(df)特徴量のスケーリング
特徴量のスケーリング
スケーリングによってすべての数値特徴量を同じ尺度にそろえると、モデルの性能が向上します。
# Example: Scaling features
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
values = [[10], [20], [30]]
scaled_values = scaler.fit_transform(values)
print(scaled_values)特徴量選択
特徴量選択
特徴量選択では、モデルに最も関連性の高い特徴量を選びます。一般的な手法には、次のようなものがあります。
- フィルター法: 相関などの統計的な指標に基づいて特徴量を選択します。
- ラッパー法: Recursive Feature Elimination(RFE)などのアルゴリズムを使用します。
- 組み込み法: Lasso回帰など、モデルの学習中に特徴量を選択します。
相関に基づく特徴量選択
相関に基づく特徴量選択
相関の高い特徴量は冗長になる可能性があります。Pandasを使用して相関を計算します。
# Example: Correlation-based feature selection
import pandas as pd
data = {'Feature1': [1, 2, 3], 'Feature2': [2, 4, 6], 'Feature3': [1, 1, 1]}
df = pd.DataFrame(data)
print(df.corr())Recursive Feature Elimination(RFE)
Recursive Feature Elimination(RFE)
RFEは、最も重要度の低い特徴量を繰り返し削除するラッパー法です。
# Example: RFE
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
X = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
y = [0, 1, 0]
model = LogisticRegression()
rfe = RFE(model, n_features_to_select=2)
rfe.fit(X, y)
print("Selected Features:", rfe.support_)決定木ベースのモデルによる特徴量の重要度
決定木ベースのモデルによる特徴量の重要度
ランダムフォレストなどの決定木ベースのモデルでは、特徴量の重要度を示すスコアが得られます。
# Example: Feature importance
from sklearn.ensemble import RandomForestClassifier
X = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
y = [0, 1, 0]
model = RandomForestClassifier()
model.fit(X, y)
print("Feature Importances:", model.feature_importances_)特徴量エンジニアリングでよくある間違い
特徴量エンジニアリングでよくある間違い
次のような間違いは避けてください。
- 特徴量を作りすぎて、過学習を引き起こす。
- 距離ベースのアルゴリズムでスケーリングが必要になることを無視する。
- 相関の高い特徴量を使用して、冗長性を生じさせる。
学んだこと
学んだこと
このレッスンでは、次のことを学びました。
- 機械学習における特徴量エンジニアリングと特徴量選択の重要性。
- 新しい特徴量を作成し、数値特徴量をスケーリングする手法。
- RFEや決定木ベースのモデルなどの手法を使用して、関連性の高い特徴量を選択する方法。
- 特徴量エンジニアリングで避けるべきよくある間違い。
よくできました!次のトピックに進みましょう。

よくある質問
「特徴量エンジニアリングと選択」レッスンは無料ですか?
はい。「特徴量エンジニアリングと選択」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全6レッスンが含まれています。
「特徴量エンジニアリングと選択」で何を学びますか?
モデルの予測性能を高めるための手法を学びます。 ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/6です。
「特徴量エンジニアリングと選択」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。