什么是机器学习算法?
机器学习算法的一般应用框架:
-
定义需要实现的功能
-
采集足够多的正例与负例样本: T = { x i , y i } l N T=\{x_i,y_i\}_l^N T={xi,yi}lN
-
利用训练样本通过迭代训练,得到模型 y = f ( x , Θ ) y=f(x,\Theta) y=f(x,Θ)
-
如果标签 y i ∈ { − 1 , + 1 } y_i \in \{-1,+1\} yi∈{−1,+1}是离散的,这就是一个分类问题,如果 y i y_i yi 是连续的,这就是回归问题。
模型是什么?模型是用来描述某个特定现象或事物的,可以分为如下种类:
- 归纳模型(Inductive inference):由一个数学公式构成,公式中的每个变量都具有明确的物理意义,能够真正描述目标系统的规律。比如牛顿定律的公式,其中的每一个变量都有明确的物理意义,比如质量、距离。
- 预测模型(Predictive inference):往往由一个万能函数构成,由许多参数组成,每个参数一般不具备任何物理意义。一般只能模拟或预测目标系统的输出。
- 直推模型(Transductive):没有明确的模型或函数,但可计算出模型在特定点的值。比如KNN算法。
knn一般指邻近算法。 邻近算法,或者说K最邻近(KNN,K-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻近值来代表。
三种模型的比较:
深度学习的本质是什么?
传统机器学习 vs 深度学习
- 本质完全相同,都是利用一个万能函数来拟合训练样本的分布
- 区别在于:深度学习神经网络拥有极高*度的万能函数,能够很好地拟合任意复杂度的分布。
- 深度学习关键词:数据驱动,越多数据做训练,就能达到越高的精度
机器学习算法分类
-
非监督学习和监督学习
- 非监督学习:不需要训练样本,如聚类
- 监督学习:需要训练样本 T = { x i , y i } l N T=\{x_i,y_i\}_l^N T={xi,yi}lN的机器学习算法,如大多数分类、回归算法。
-
生成模型和判别模型
- 生成模型:计算数据x与标签y的联合概率 P ( x , y ) P(x,y) P(x,y),用下列公式计算分类概率: P ( y ∣ x ) = P ( x , y ) / P ( x ) P(y|x)=P(x,y)/P(x) P(y∣x)=P(x,y)/P(x)
- 判别模型:直接计算分类概率 P ( y ∣ x ) P(y|x) P(y∣x)
-
简单数据模型与复杂数据模型
- 简单数据模型:被用来处理相互独立的简单数据
- 复杂数据模型:被用来处理时空关联性的复杂数据
机器学习算法的三个重要方面
- Structural model:我们选择哪一类函数 f ( x , Θ ) f(x,\Theta) f(x,Θ)建立模型
- Error model:我们选择哪一类损失模型(loss function) L ( y , f ( x , Θ ) ) L(y,f(x,\Theta)) L(y,f(x,Θ))来做训练?损失函数相当于为模型的选择制定考核标准
- Optimization procedure:我们选择哪一种数值计算方法来获取最优模型 f ∗ ( x , Θ ) f^*(x,\Theta) f∗(x,Θ)