-
Supervised 監督學習
-
Unsuperivised 非監督學習
-
Reinforcement 強化學習(alphago,我將Action給環境,環境給我Reward))
-
Supervised Learning
- Classification 分類
- Regression 回歸
-
Unsupervised Learning
- Clustering 聚類
- Compression 降維(壓縮)
-
如何選擇一個模型
- 大體流程
``` //訓練集x(N * d), y(N * 1); 測試集x, y(同分布的) train_x, train_y, test_x, test_y = getData() // MNIST model = somemodel() // SVM(),LASSO() model.fit(train_x, train_y) // 學習參數 predictions = model.predict(test_x) // 預測模型 //驗證模型 //分類任務: 分對的百分比 //回歸任務: 計算MSE等 //11種評價指標 //一個預測的數,和真實數據之間的差距 score = score_function(test_y, predictions) ```
# iris 花的數據集
from sklearn.datasets import load_iris iris = load_iris() from sklearn.datasets import load_iris iris = load_iris() # The resulting dataset is a Bunch object: you can see what's available using the method keys(): In [4]: iris.keys() Out[4]: dict_keys(['target', 'data', 'target_names', 'DESCR', 'feature_names'])
-
Generating Synthetic Data 自己造數據
In [5]: from sklearn.datasets import make_regression # 自己造出來數據
I. Supervised 監督學習
- estimator.fit(X_train, y_train)
- estimator.predict(X_test)
- estimator.score(X_test, y_test) #評估
監督學習的工作流程
II.Unsupervised Transformers (無監督)
transformer.fit(X_train) # 進行一個擬合 X_train_transf = transformer.transform(X_train) # 降維到所期待的維度 X_test_transf = transformer.transform(X_test) # n component, trans = TSN(n_col=3, [..])
-
Feature Scaling (特征規則化)
- min-max scalling
- "normalization" (歸到0~1之間)
-
Principal Component Analysis (PCA)
把一個高維空間映射 到 XTX 的 最大的兩個特征值(對應的兩個特征向量正交) 的投影上
-
PCA for Dimensionality Reduction (降維)
-
K-means Clustering (聚類手法)
- 需要告訴他分成 N 類
- 歐幾里得距離 ( d(x,y)=∑2j=1(xj−yj)2=||x−y||22 )
# ### Scikit-learn API estimator.fit(X_train, [y_train]) estimator.predict(X_test) estimator.transform(X_test) Classification Preprocessing (預處理:圖像灰度值歸一化等 ) Regression Dimensinality Reduction (降維) Clustering Feature Extraction (特征提取) Feature selection (特征選擇)
-
Preprocessing & Classification Overview (預處理 和 分類概述)
- 略
-
訓練數據集、驗證數據集、測試數據集
(對不同模型,或者相同模型的不同參數,用驗證集進行訓練選擇;比較出更好的模型+參數時, 再在70+15 %的訓練數據集上訓練)
(最后在測試集上訓練,如果訓練效果好,就在全部數據集上再訓練一遍)