机器学习
概论
-
基本分类:
- 监督学习(分类,回归)
- 无监督学习(聚类,降维)
- 半监督学习(部分标注数据和大量未标注的数据)
- 强化(增强)学习,深度学习(基于神经网络的分类和回归)
- 迁移学习(在缺少数据的情况下,将其他领域知识迁移到另一个领域)
- 结构化学习(输出的是对象,除了回归和分类以外的问题,如信息检索,对象匹配)
-
Sickit-learn常用函数分类
分类 应用 算法 分类(Classification) 异常检测,图像识别等 KNN,SVM 聚类(Clustering) 图像分割,群体划分等 K-means,谱聚类 回归(Regression) 价格预测,趋势预测等 线性回归,SVR 降维(Dimension Reduction) 可视化 PCA,NMF -
相关书籍和课程:
- 机器学习周志华,
- PRML-Bishop 在线课程:
- 吴恩达,Stanford cs231n,Reinforcement learning David silver
-
分类任务(Classification):模型的输出是 一个向量(Vector)
-
回归函数封装的模块
- sklearn.linear_model(线性函数为主)
- sklearn.preprocessing(非线性函数为主)
-
分类算法的应用:
- 金融:贷款是否批准进行评估
- 医疗诊断:判断一个肿瘤是恶性还是良性
- 欺诈检测
- 网页分析:判断网页的类别
分类模型 加载模块 使用方式 最近邻算法 neighbors.NearestNeighbord fit()利用数据进行训练,predict函数 支持向量机 svm.SVC 朴素贝叶斯 naive_bayes.GaussianNB 决策树 tree.DecisionTreeClassifier cross_val_score使用10则验证交叉,利用fit和predict进行验证 集成方法 ensemble.BaggingClassifier 神经网络 neural_network.MLPClassifier -
-
回归任务(Regression):主要以linear_model模块,模型输出的是一个数值(scalar)
回归模型 加载模块 岭回归 linear_model.Ridge lasso回归 linear_model.Lasso 弹性网络 linear_model.ElasticNet 最小角回归 linear_model.Lars 贝叶斯回归 linear_model.BayesianRidege(高斯朴素贝叶斯分类,多项式模型的朴素贝叶斯,多元伯努利朴素贝叶斯) 逻辑回归 linear_model.LogisticRegression 多项式回归 prprocessing.PolynomialFeatures -
聚类任务:主要以cluster模块为主,欧式距离,曼哈顿距离,马氏距离,余弦相似度
聚类方法 加载模块 K-means cluster.KMeans AP聚类 cluster.AffinityPropagation 均值漂移 cluster.MeanShift 层次聚类 cluster.AgglomerativeClustering DBSCAN cluster.DBSCAN BIRCH cluster.Birth 谱聚类 cluster.SpectralClustering sklearn.cluster
算法名称 参数 可扩展性 相似性度量 K-means 聚类个数 大规模数据 点间距 DBSCAN 邻域大小 大规模数据 点间距 Gaussian Mixture 聚类个数及其他参数 复杂度高,不适合处理大规模数据 马氏距离 Birch 分支因子,阀值等其他超参 大规模数据 两点间的欧式距离 -
降维任务:主要以decomposition模块为主,数据的可视化和精简数据
降维任务 加载模块 主成分分析 decomposition.PCA 截断SVD和LSA decomposition.TruncatedSVD 字典学习 decomposition.SparseCoder 因子分析 decomposition.FactorAnalsis 独立成分分析 decomposition.FastICA 非负矩阵分解 decomposition.NMF LDA decomposition.LatentDirichletAllocation 算法名称 参数 可扩展性 适用任务 PCA 所降维度以及其他超参 大规模数据 信号处理等 FastICA 所降维度以及其他超参 超大规模数据 图形图像特征提取 NMF 所降维度以及其他超参 大规模数据 图形图像特征提取 LDA 所降维度以及其他超参 大规模数据 文本数据,主题挖掘 -
训练数据和测试数据
a. 训练集(training set):构成监督学习经验的案例集合;
b. 测试集(test set):评估程序效果的案例集合;
c. 验证集(validation set):调整超参数变量的案例集合;超参数变量控制模型如何学习;
d. 监督学习的观测值分成三部分:训练集(50%),测试集(50%),验证集(25%);
e. 过度拟合(over-fitting)vs欠拟合:过度拟合是指能够在训练集上获得较好地拟合的假设,在训练集之外的案例集合却不能很好的拟合数据;原因是存在噪音或者训练数据太少;正则化(regularization)可以减轻过度拟合程度;
f. “放入的是垃圾,出来的也是垃圾”:监督学习需要用有代表性、标签正确的数据集进行训练;多而不好的数据,训练效果不一定比少而好的数据好。
g. 交叉验证:用相同的数据对算法进行多次训练和检验;适用于训练集不够的时候;数据训练集分成N块,算法用N-1块进行训练,再用最后一块进行测试
-
效果评估-偏差和方差
a. 监督学习中,两个基本指标评估预测误差:偏差(bias)和方差(variance);高方差是过度拟合了训练集数据,高偏差则是拟合不够的表现;
b. 偏差-方差均衡:现在中二者具有背反特征,降低一个指标,另一个指标会增加;
c. 无监督学习:没有预测误差,评估数据结构的一些属性;评估方法针对于具体的任务;
d. 无监督评估举例-恶性肿瘤预测(真阳性TP(true positive)+真阴性TN(true negative)+假阳性FP(false positive )+假阴性FN(false negative)):
准确度评估accuracy=(TP+TN)/(TP+TN+FP+FN);真阴性和真阳性即是预测都在先前的分类中
恶性肿瘤精确度precision=TP/(TP+FP)
召回率recall=TP/(TP+FN)
召回率比其他指标更满足实际要求;
-
岭回归:解决单纯线性回归中稀疏矩阵X^t X得到的值的失真问题
优化目标:
a r g m i n ∣ ∣ X t w − y ∣ ∣ 2 + a ∣ ∣ w ∣ ∣ 2 argmin||X^tw-y||^2 + a||w||^2 argmin∣∣Xtw−y∣∣2+a∣∣w∣∣2对应的矩阵求解方法:
w = ( X T X + a i ) − 1 X T Y w=(X^TX+ai)^-1X^TY w=(XTX+ai)−1XTY
-
强化学习就是程序或智能体(agent)通过与环境不断的进行交互学习,学习的目标就是使累计回报最大化;强化学习是一种试错学习,因其在各种状态(环境)下需要尽量尝试所有可以选择的动作,通过环境给出的反馈来判断动作的优劣,最终获得环境和最优动作的映射关系(即策略)
-
马尔可夫决策过程(MDP)
MDP基本元素
\s\epsilon
S:有限状态state集合,s表示某个特定的状态
a\epsilon A:
:有限动作action集合,a表示某个特定的动作
T(S,a,S")~Pr(s’|s,a)
状态转移模型,根据当前状态s和动作a预测下一个状态s,这里的P表示从s采取行动a转移到s‘的概率。 -
机器学习大量数据的工具:LibLinear和spark Mylib