LogoMark.png

scikit-learn の変更点


#author("2021-12-16T14:43:24+09:00;2020-07-08T13:45:44+09:00","default:inoue.ko","inoue.ko")
#author("2023-09-07T14:10:25+09:00;2020-07-08T13:45:44+09:00","default:inoue.ko","inoue.ko")
*scikit-learn
https://scikit-learn.org/
~

**概要
***Scikit-learnとは
#image(https://scikit-learn.org/stable/_static/ml_map.png,right,40%)
scikit-learn (サイキット・ラーン)は Python用のオープンソース (BSD ライセンス) の機械学習ライブラリで、NumPy, SciPy や Matplotlib と互換性を持つように開発されています。データの前処理、分類、回帰、クラスタリングなど、機械学習のアルゴリズムを幅広く実装しています。


分類(クラス分類)向きのものと、回帰(予測)向きのもの、計7つの定番データサンプルも同梱されています。 
#clear

&scale(80){図版:https://scikit-learn.org/stable/tutorial/machine_learning_map/};
~

***Scikit-learn のインストール
[[Python]] 言語のライブラリとしてのインストールになるので、一般の Python3 の環境であれば、Terminalから以下のコマンドでインストールできます。
 $ pip3 install scikit_learn
 $ pip3 list  ← 念のため一覧表示

~

***Scikit-learnを使った分類プログラムの流れ
データ読み込み > 訓練データとテストデータに分割 > 学習(fit)> 予測(predict)> 評価(score)という流れで、評価結果に応じて学習方法をチューニング・・というのが開発の定番スタイルです。

-1. ライブラリとデータセットの読み込み
 from sklearn import datasets
 from sklearn.model_selection import train_test_split
 from sklearn import svm
 from sklearn import metrics
 
 digits = datasets.load_digits()

-2. 訓練データとテストデータの用意
 X = digits.data
 y = digits.target
 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size = 0.2 )
&small(一般に、train は訓練データ、test は評価用のテストデータの意味です。);
&small(関数モデルを y = f(X) と書いた場合の、X が説明変数で、y が目的変数です。);
&small(一般に ベクトルである X は大文字、値である y は小文字で書くのが慣例です。);

-3. アルゴリズムの指定と学習
 clf = svm.SVC( gamma=0.001 )
 clf.fit( X_train, y_train )
&small(clf は一般に classifier(分類器)の略です。);

-4. モデルの評価
 accuracy = clf.score( X_test, y_test )
 print( "正解率 {accuracy} ")
 predicted = clf.predict( X_test )
 print( metrics.classification_report( y_test, predicted ) )
&small(predict は「予測」の意味です);

~
~

**代表的な機械学習の手法

***教師あり学習
-''分類''|Classification 
--[[LogisticRegression]]
--LinearSVM
--[[DecisionTree]]
--[[RandomForest]]
--[[SupportVectorMachine]](SVM)
--GradientTreeBoosting
--NaiveBayes
--[[NeuralNetwork]](Supervised)

-''回帰''|Regression
--[[LinearRegression]]
--RidgeRegression
--Lasso
// &small(入力に無視して良い変数が混じっている)
--SVR
--BaggingRegressor
--GradientBoostingREgressor

~

***教師なし学習
-''クラスタリング''|Clustering
--[[k-means]]
--MeanShift
//--VBGMM
--GaussianMixtureModels(GMM)
--SpectralClustering

-''異常値検知''|Novelty and Outlier Detection
--Isolation Forest
--Local OutlierFactor
--One-Class SVM

-''次元削減(圧縮)''|Dimension Reduction 
--[[PrincipalComponentAnalysis]](PCA)
--[[PrincipalComponentAnalysis>Statistics/PCA]](PCA)
--SpectralEmbedding


// その他

//-SGD (Stochastic Gradient Descent)
//-最近傍・k近傍法 (Nearest Neighbors)
//-ガウス過程(Gaussian Processes)
//-十字型分解(Cross decomposition)
//-アンサンブル学習(Ensemble methods)
//-マルチクラス・マルチラベルアルゴリズム(Multiclass and multilabel algorithms)
//-特徴量選択(Feature selection)
//-半教師あり学習(Semi-Supervised)
//-アイソトニック回帰(Isotonic regression)
//-キャリブレーション(Probability calibration)

//--Neural network models (Unsupervised) )
//--Biclustering
//--共分散推定(Covariance estimation)
//--密度推定(Density Estimation)
//--Isomap
//-t-SNE

~
~

**データセット
-一般データセットAPI (General dataset API)
-トイデータセット (Toy datasets)
-リアルワールドデータセット (Real world datasets)
-生成データセット (Generated datasets)
-その他 (Loading other datasets)


~
~