機械学習アルゴリズムのAPIまとめ

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)

タグ: Python Scikit-learn MachineLearning

7月28日 01:07 投稿