机器学习(Machine Learning,ML)
机器是如何学习的?
1.什么是机器学习?
通过输入海量训练数据对模型进行训练,使模型掌握数据所蕴含的潜在规律,进而对新输入的数据进行准确的分类和预测。 Note: 1)计算机程序能够处理的只有数值和运算 2)要让一段程序了解客观世界变化万千的实物,则必须将这些实物数值化,将事物的变化和不同事物之间的关联转化为运算。 3)现实世界和计算机之间,概念<-->数值,关系<-->运算的映射,造就了机器可以自主学习实物规律的可能2.机器学习的分类
有监督学习 通过标注进行学习(用于学习的数据包含样本和标签) 无监督学习 用于学习的数据只有样本没有标签机器学习三要素
数据、模型、算法(算法通过在数据上进行运算产生模型)1.数据
原数据(图片/文字/声音(计算机能够处理的是数值))---->特征工程(1.确定用哪些特征来表示数据 2.确定用什么方式表达这些特征)--VSM(向量空间模型)--> vector ---->算法--算运-->模型 有标注数据(数据样本有标签) 无标注数据(数据样本无标签)2.模型
模型是机器学习的结果,学习的过程称为训练 机器学习的两类问题 回归(输出结果是一个数值) 分类(输出结果是一个标签)3.算法
损失函数 描述预测值与真实值之间的差别(针对一个训练数据) 代价函数 (针对所有的训练数据) 目标函数 最小化的代价函数 如何找到最小的参数?---->优化算法 优化算法 梯度下降法(最常用) 共轭梯度法 牛顿法 拟牛顿法 模拟退火法 ...模型的获取和改进
1.获取模型的过程(-训练-将算法应用到数据上进行运算的过程)
数据+算法=模型 模型构建步骤 Step1 数据准备 Step1.1数据预处理 收集数据、清洗数据、标注数据 Step1.2构建数据的VSM(将文本、图片、音频、视频等格式的数据转换为向量) Step1.3将构件号的VSM的数据分为训练集、验证集和测试集 Step2 训练--将训练集输入给训练程序进行运算。训练程序的核心是算法,所有输入的向量化数据都会按该训练程序所以及的算法进行运算。训练程序输出的结果就是模型 Step2.1编写训练程序 Step2.1.1选择模型类型 Step2.1.2选择优化算法 Step2.1.3根据模型类型和算法编写程序 Step2.2训练-->获得临时模型 Step2.3在训练集上运行临时模型,获得训练集预测结果 Step2.4在验证集上运行临时模型,获得验证集预测结果 Step2.5综合参照Step2.3和step2.4的预测结果,改进模型 Step2.6 Step2.2到Step2.5反复迭代,直至获得让我们满意,或者已经无法继续优化的模型 Step3 测试--将测试机数据输入给训练获得的模型,得到预测结果;再将预测结果与这些数据原本预期的结果进行比较 Note: 训练集:用来做训练的数据的集合 验证集:用来在训练的过程中每个训练轮次结束后验证当前模型性能,为进一步优化模型提供参考的数据的集合 测试集:用来做测试的数据的集合,用于检验最终得出的模型的性能 每个集合都应当是独立的,和另外两个没有重叠 训练集市训练过程的基础,而验证和测试集则是在不同阶段用来评价训练结果的2.改进模型
数据 大量的高质量训练数据,是提高模型质量的有效手段,但通常我们可以用来训练的数据量相当有限 有限的数据---->归一化(Normalization)、正则化(Regularization)、Bootstrap、根据业务进行特征选取(从业务角度区分输入数据包含的特征,并理解这些特征对结果的贡献) 调参 超参数需要模型训练者自己来设置和调整 选择合适的模型模型的质量和评判指标
分类模型评判指标
精确率(Precision)
召回率(Recall)
F1Score(综合Precision和Recall)
一个机器学习模型的质量问题,从对训练集样本拟合程度的角度,可以分为两类:
欠拟合(Underfitting)模型在训练集上的预测结果不佳,指标偏低
解决方法:选择更复杂的模型,增加特征
过拟合(Overfitting)模型在训练集上指标很好,而在验证或测绘集上指标偏低
解决方法:选择更简单的模型,减少特征
模型
线性回归 LinearRegression,LR
逻辑回归 LogisticRegression
朴素贝叶斯分类器 Naive Bayes Classifier,NB
决策树 DecisionTree,DT
支持向量机 Supporting Vector Machine,SVM
支持向量回归机器 Support Vector Regressioon,SVR
隐马尔科夫模型 Hiden Marcov Model,HMM
条件随机场 Conditional Random Field,CRF
K邻近 K Nearest Neighbor,KNN
K均值 K Means