01.机器学习引言

1.机器学习的步骤

1. 数据搜集

其中数据划分,是将数据集分为训练集、验证集和测试集(通常不考虑时间)

2. 数据清洗

3. 特征工程

  1. 提取对象:原始数据(特征提取一般在特征选择之前)

  2. 提取目的:自动地构建新的特征,将原始数据转换为一组具有明显物理意义(例如,几何特征、纹理特征)或统计意义的特征

  3. 常用方法:

    • 降维方面:PCA、ICA、LDA等

    • 图像方面:SIFT、Gabor、HOG等

    • 文本方面:词袋模型、词嵌入模型等

注意:传统机器学习跟深度学习在特征提取的区别:

深度学习不需要去做特征工程,模型自己对数据做特征工程

4. 数据建模

4.1 模型分类:

  • 概率模型:决策树、朴素贝叶斯、隐马尔科夫模型、高斯混合模型
  • 非概率模型:感知机、支持向量机、KNN、AdaBoost、K-means以及神经网络

4.2损失函数(衡量模型的好坏)

损失函数就是用来衡量模型预测结果跟真实数据之间的真值的。例如,平均损失函数(Quadratic Loss Function)L(Y,f(x)) = (Y- f(x))2,损失函数越小,模型性能越好。

所以我们在设定好一个模型之后,给定一个训练集,训练的目的就是去优化这个损失函数:

min ⁡ f 1 N ∑ i = 1 n L ( y i , f ( x i ) ) \mathop {\min }\limits_f {1 \over N}\sum\limits_{i = 1}^n {L{{({y_i},f({x_i}))}}} fminN1i=1nL(yi,f(xi))

4.3 优化算法

怎么求这个损失函数呢?怎求的具体算法就称为优化算法,现在主要的优化算法有:梯度下降法、牛顿法、拟牛顿法、ADAM等等。

4.4评价指标

(1).评测模型好坏的评价指标

  • 正确肯定(True Positive,TP):预测为真,实际为真

  • 正确否定(True Negative,TN):预测为假,实际为假

  • 错误肯定(False Positive,FP):预测为真,实际为假

  • 错误否定(False Negative,FN):预测为假,实际为真

(2).参考指标

Accuracy (准确率) = T P + T N T P + T N + F P + F N {{TP + TN} \over {TP + {\rm{TN}} + {\rm{FP + FN}}}} TP+TN+FP+FNTP+TN

Precision(精确率) = T P T P + F P {{TP} \over {TP + {\rm{FP}}}} TP+FPTP

Recall(召回率) = T P T P + F N {{TP} \over {TP + {\rm{FN}}}} TP+FNTP

F1 score = 2 × P r e c i s i o n × R e c a l l P r e c i s i o n + R e c a l l {{2 \times {\rm{Precision}} \times {\rm{Recall}}} \over {{\rm{Precision}} + {\rm{Recall}}}} Precision+Recall2×Precision×Recall
3.

2.数据集

2.1 K折交叉验证

交叉验证既可以解决数据集的数据量不够大的问题,也可以解决参数调优的问题。

步骤:

1.使用训练集训出k个模型

2.用k个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)

3.选取代价函数值最小的模型

4.用步骤3中选出的模型对测试集计算,得出推广误差(代价函数的值)

2.2 数据集的不均衡

数据不平衡是指数据集中各类样本数量不均匀的情况。这种情况会给模型的训练带来很大的问题

平滑数据集分布不平衡的解决方法:

SMOTE (Synthetic Minority Over-sampling Technique)算法:在少样本的距离的中间再生成一个新的样本

3.机器学习分类

  • 监督学习:输入的数据中有监督信息,以概率函数、代数函数或人工神经网络为基函数模型,采用迭代计算方法,学习结果为函数

  • 无监督学习:输入数据中没有监督信息,采用聚类方法,学习结果为类别。典型的无监督学习有聚类,降维算法等。除此之外,还有自监督学习,半监督学习,对比学习等概念。

  • 强化学习:以环境为反馈(奖/惩信号)作为输入,以统计和动态规划技术为指导的一种学习方法。

3.1 监督学习

  • 分类(classfication)

  • 回归(regression)

3.2 无监督

  • 聚类(Clustering)

  • 降维(Demensionality Reduction)

3.3 强化学习

用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。

4.编程基础

  • 编程语言:python、R
  • 编程系统:Linux、anaconda
  • 编程平台:jupyter notebook , vscode,pycharm
  • 编程库:numpy,pandas,matplotlib,scikit-learn,pytorch,tensorflow

你可能感兴趣的:(机器学习,机器学习,人工智能)