如何选择机器学习模型进行数据分析_简要笔记

  • 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 监督学习

  1. estimator.fit(X_train, y_train)
  2. estimator.predict(X_test)
  3. 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(xjyj)2=||xy||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 %的训练数据集上训练)

 

(最后在测试集上训练,如果训练效果好,就在全部数据集上再训练一遍)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-10-25 17:53  douzujun  阅读(1993)  评论(0编辑  收藏  举报