編集者による画像
scikit-learn は、Python で構築された最も一般的に使用される機械学習ライブラリの XNUMX つです。 その人気は、初心者の開発者にとって使いやすい、簡単で一貫性のあるコード構造に起因する可能性があります。 また、サードパーティの機能を統合する柔軟性とともに、高レベルのサポートを利用できるため、ライブラリは堅牢で実稼働に適したものになります。 このライブラリには、分類、回帰、およびクラスタリング用の複数の機械学習モデルが含まれています。 このチュートリアルでは、さまざまなアルゴリズムによるマルチクラス分類の問題を探ります。 すぐにそれに飛び込んで、scikit-learn モデルを構築しましょう。
pip install scikit-learn
scikit-learn のデータセット モジュールで利用可能な「Wine」データセットを使用します。 このデータセットは、合計 178 のサンプルと 3 つのクラスで構成されています。 データセットはすでに前処理され、特徴ベクトルに変換されているため、モデルのトレーニングに直接使用できます。
from sklearn.datasets import load_wine X, y = load_wine(return_X_y=True)
データの 67% をトレーニング用に保持し、残りの 33% をテスト用に保持します。
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42
)
ここで、複雑さの異なる 5 つの異なるモデルを実験し、データセットでその結果を評価します。
model_lr = LogisticRegression()
model_lr.fit(X_train, y_train)
y_pred_lr = model_lr.predict(X_test) print("Accuracy Score: ", accuracy_score(y_pred_lr, y_test))
print(classification_report(y_pred_lr, y_test))
出力
Accuracy Score: 0.9830508474576272 precision recall f1-score support 0 1.00 0.95 0.98 21 1 0.96 1.00 0.98 23 2 1.00 1.00 1.00 15 accuracy 0.98 59 macro avg 0.99 0.98 0.98 59
weighted avg 0.98 0.98 0.98 59
model_knn = KNeighborsClassifier(n_neighbors=1)
model_knn.fit(X_train, y_train)
y_pred_knn = model_knn.predict(X_test) print("Accuracy Score:", accuracy_score(y_pred_knn, y_test))
print(classification_report(y_pred_knn, y_test))
出力
Accuracy Score: 0.7796610169491526 precision recall f1-score support 0 0.90 0.78 0.84 23 1 0.75 0.82 0.78 22 2 0.67 0.71 0.69 14 accuracy 0.78 59 macro avg 0.77 0.77 0.77 59
weighted avg 0.79 0.78 0.78 59
パラメータ「n_neighbors=2」を変更すると、精度の値が低下することがわかります。 したがって、データが十分に単純であり、考慮すべき単一の近隣でより良い学習を達成することを示しています。
出力
Accuracy Score: 0.6949152542372882 precision recall f1-score support 0 0.90 0.72 0.80 25 1 0.75 0.69 0.72 26 2 0.33 0.62 0.43 8 accuracy 0.69 59 macro avg 0.66 0.68 0.65 59
weighted avg 0.76 0.69 0.72 59
from sklearn.naive_bayes import GaussianNB model_nb = GaussianNB()
model_nb.fit(X_train, y_train)
y_pred_nb = model_nb.predict(X_test) print("Accuracy Score:", accuracy_score(y_pred_nb, y_test))
print(classification_report(y_pred_nb, y_test))
出力
Accuracy Score: 1.0 precision recall f1-score support 0 1.00 1.00 1.00 20 1 1.00 1.00 1.00 24 2 1.00 1.00 1.00 15 accuracy 1.00 59 macro avg 1.00 1.00 1.00 59
weighted avg 1.00 1.00 1.00 59
from sklearn.tree import DecisionTreeClassifier model_dtclassifier = DecisionTreeClassifier()
model_dtclassifier.fit(X_train, y_train)
y_pred_dtclassifier = model_dtclassifier.predict(X_test) print("Accuracy Score:", accuracy_score(y_pred_dtclassifier, y_test))
print(classification_report(y_pred_dtclassifier, y_test))
出力
Accuracy Score: 0.9661016949152542 precision recall f1-score support 0 0.95 0.95 0.95 20 1 1.00 0.96 0.98 25 2 0.93 1.00 0.97 14 accuracy 0.97 59 macro avg 0.96 0.97 0.97 59
weighted avg 0.97 0.97 0.97 59
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import RandomizedSearchCV def get_best_parameters(): params = { "n_estimators": [10, 50, 100], "max_features": ["auto", "sqrt", "log2"], "max_depth": [5, 10, 20, 50], "min_samples_split": [2, 4, 6], "min_samples_leaf": [2, 4, 6], "bootstrap": [True, False], } model_rfclassifier = RandomForestClassifier(random_state=42) rf_randomsearch = RandomizedSearchCV( estimator=model_rfclassifier, param_distributions=params, n_iter=5, cv=3, verbose=2, random_state=42, ) rf_randomsearch.fit(X_train, y_train) best_parameters = rf_randomsearch.best_params_ print("Best Parameters:", best_parameters) return best_parameters parameters_rfclassifier = get_best_parameters() model_rfclassifier = RandomForestClassifier( **parameters_rfclassifier, random_state=42
) model_rfclassifier.fit(X_train, y_train) y_pred_rfclassifier = model_rfclassifier.predict(X_test) print("Accuracy Score:", accuracy_score(y_pred_rfclassifier, y_test))
print(classification_report(y_pred_rfclassifier, y_test))
出力
Best Parameters: {'n_estimators': 100, 'min_samples_split': 6, 'min_samples_leaf': 4, 'max_features': 'log2', 'max_depth': 5, 'bootstrap': True}
Accuracy Score: 0.9830508474576272 precision recall f1-score support 0 1.00 0.95 0.98 21 1 0.96 1.00 0.98 23 2 1.00 1.00 1.00 15 accuracy 0.98 59 macro avg 0.99 0.98 0.98 59
weighted avg 0.98 0.98 0.98 59
このアルゴリズムでは、最高の精度を達成するためにいくつかのハイパーパラメーター調整を実行しました。 各パラメーターから選択する複数の値で構成されるパラメーター グリッドを定義しました。 さらに、Randomized Search CV アルゴリズムを使用して、モデルに最適なパラメーター空間を検索しました。 最後に、取得したパラメーターを分類子に入力して、モデルをトレーニングします。
Models | 正確さ | 観測 |
ロジスティック回帰 | 視聴者の38%が | 高い精度を実現。 モデルは、テスト データセットで適切に一般化できます。 |
K 最近傍法 | 視聴者の38%が | アルゴリズムはデータ表現をうまく学習できません。 |
ナイーブベイズ | 視聴者の38%が | モデルはそれほど複雑ではないため、データをオーバーフィットして絶対精度を取得します。 |
デシジョンツリー分類子 | 視聴者の38%が | それなりの精度を実現。 |
ランダムフォレスト分類子 | 視聴者の38%が | アンサンブルベースのアプローチであるため、デシジョン ツリーよりも優れたパフォーマンスを発揮します。 ハイパーパラメータ チューニングを実行すると、ロジスティック回帰と同様の精度が得られます。 |
このチュートリアルでは、scikit-learn で機械学習モデルの構築とトレーニングを開始する方法を学びました。パフォーマンスに関する基本的なアイデアを得るために、いくつかのアルゴリズムを実装して評価しました。パフォーマンスを向上させるために、いつでも機能エンジニアリング、ハイパーパラメータ調整、トレーニングなどの高度な戦略を採用できます。 scikit-learn が提供する機能の詳細については、公式ドキュメントを参照してください。 scikit-learn による機械学習の概要, scikit-learn を使用した Python での機械学習.
イェシャ・シャストリ モントリオール大学で機械学習の修士号を取得しようとしている情熱的な AI 開発者兼ライターです。 Yesha は、社会に利益をもたらす課題を解決し、学んだことをコミュニティと共有するために、責任ある AI 技術を探求することに興味を持っています。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 情報源: https://www.kdnuggets.com/getting-started-with-scikit-learn-for-classification-in-machine-learning.html?utm_source=rss&utm_medium=rss&utm_campaign=getting-started-with-scikit-learn-for-classification-in-machine-learning
- 1
- 10
- 100
- 67
- 77
- 84
- 9
- 98
- a
- できる
- 私たちについて
- 絶対の
- 精度
- 達成する
- 採用
- 高度な
- AI
- アルゴリズム
- アルゴリズム
- 既に
- 常に
- &
- アプローチ
- オート
- 利用できます
- 基本
- 恩恵
- BEST
- より良いです
- ブートストラップ
- ビルド
- 内蔵
- 課題
- 変化
- 選択する
- クラス
- 分類
- クラスタリング
- コード
- 一般に
- コミュニティ
- 複雑な
- 複雑さ
- 検討
- 整合性のある
- からなる
- 含まれています
- 変換
- データ
- データセット
- 決定
- 減少
- Developer
- 開発者
- 異なります
- 異なる
- 直接に
- ドキュメント
- 各
- エンジニアリング
- 十分な
- エーテル(ETH)
- 評価する
- 評価
- 実験
- 探る
- 特徴
- 少数の
- 最後に
- 柔軟性
- 森林
- 優しい
- から
- 機能性
- さらに
- 取得する
- 受け
- 素晴らしい
- グリッド
- ハイ
- 認定条件
- How To
- HTML
- HTTPS
- ハイパーパラメータ調整
- アイデア
- 実装
- import
- 改善します
- in
- install
- 統合する
- IT
- キープ
- LEARN
- 学んだ
- 学習
- レベル
- ライブラリ
- 図書館
- 機械
- 機械学習
- マクロ
- 作る
- マスターの
- モデル
- モジュール
- 他には?
- 最も
- の試合に
- 観察する
- 得
- オファー
- 公式
- ONE
- パラメーター
- パラメータ
- 情熱的な
- パフォーマンス
- 実行
- 実行する
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 人気
- 精度
- 問題
- 生産
- Python
- ランダム化
- 読む
- 表現
- 責任
- REST
- 結果
- return
- 堅牢な
- scikit-学ぶ
- を検索
- シェアする
- 作品
- 同様の
- 簡単な拡張で
- 社会
- 解決する
- 一部
- スペース
- 開始
- 作戦
- 構造
- 適当
- サポート
- テクニック
- test
- テスト
- アプリ環境に合わせて
- サードパーティ
- 介して
- 〜へ
- トータル
- トレーニング
- トレーニング
- true
- チュートリアル
- つかいます
- 値
- 価値観
- さまざまな
- which
- 意志
- 作家
- X
- ゼファーネット