sklearn API
1. K-近傍法 (K-Nearest Neighbors)
1.1 データ読み込み
データセットは sklearn.datasets から取得できます。
datasets.load_*: 小さなデータセットを読み込むdatasets.fetch_*: 大きなデータセットを読み込む
戻り値は以下の形式で提供されます。
data: 特徴量の配列target: ラベルの配列DESCR: データセットの説明
2. データ前処理
2.1 データセット分割
train_test_split 関数を使用してデータを訓練用とテスト用に分割します。
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
2.2 時間特徴量の処理
日時データを変換する例:
import pandas as pd
df["timestamp"] = pd.to_datetime(df["timestamp"], unit="s")
df["day"] = df["timestamp"].dt.day
df["hour"] = df["timestamp"].dt.hour
df["weekday"] = df["timestamp"].dt.weekday
3. 特徴量のスケーリング
3.1 正規化
特徴量を [0, 1] の範囲に正規化します。
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(data)
3.2 標準化
データを平均 0、分散 1 の標準正規分布に変換します。
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
standardized_data = scaler.fit_transform(data)
4. モデルトレーニング
4.1 K-近傍法モデル
KNeighborsClassifier を使用してモデルを構築します。
from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(n_neighbors=5, algorithm="auto")
model.fit(X_train, y_train)
4.2 交差検証
最適なハイパーパラメータを探すためにグリッドサーチを使用します。
from sklearn.model_selection import GridSearchCV
param_grid = {"n_neighbors": [1, 3, 5]}
grid_search = GridSearchCV(KNeighborsClassifier(), param_grid, cv=3)
grid_search.fit(X_train, y_train)
print("Best Score:", grid_search.best_score_)
print("Best Parameters:", grid_search.best_params_)
5. モデル評価
モデルの精度を確認します。
score = grid_search.score(X_test, y_test)
print("Test Accuracy:", score)
6. 線形回帰
6.1 正規方程式を使用した線形回帰
LinearRegression クラスを使用して回帰モデルを構築します。
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)
print("Coefficients:", regressor.coef_)
6.2 確率的勾配降下法 (SGD) 回帰
大規模データセットに対応するための SGDRegressor を使用します。
from sklearn.linear_model import SGDRegressor
sgd_regressor = SGDRegressor(loss="squared_loss", learning_rate="invscaling", eta0=0.01)
sgd_regressor.fit(X_train, y_train)
print("Coefficients:", sgd_regressor.coef_)
7. 論理回帰
分類問題に対して論理回帰モデルを適用します。
from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression()
classifier.fit(X_train, y_train)
8. 決定木
決定木分類器を使用してモデルを構築します。
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(criterion="entropy", max_depth=5)
tree.fit(X_train, y_train)
9. k-meansクラスタリング
クラスタリングアルゴリズムとして k-means を使用します。
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3)
clusters = kmeans.fit_predict(X)
10. 主成分分析 (PCA)
次元削減を行うために PCA を適用します。
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(X)