一、基本形式
线性模型形式简单、易于建模,但它却蕴含着机器学习中一些重要的基本思想,许多功能强大的非线性模型可能就是在线性模型的基础上通过引入层级结构或高维映射而得,此外,由于w直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性。
定义:给定由d个属性描述的示例x=(x1; x2;……;xd)。其中xi是x在第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即:
f(x) = w1x1 + w2x2 + ... +wdxd + b
一般用向量形式写成
其中,w和d学得之后,模型就能确定。
二、典型的线性模型简介
1、线性回归
给定数据集D=,其中
,对离散属性,若属性间存在“序”关系,可通过连续话将其转化为连续值,线性回归试图学得
.
确定w和b的方法有:均方误差最小化(最小二乘法),它的几何意义对应于常用的欧几里得距离或称之为“欧式距离”,在线性回归中,最小二乘法试图找到一条直线,使所有样本到直线上的欧式距离之和最小。这一过程也可以称之为模型的“参数估计”。
如果将上面的属性关系更加一般化推广至其样本由d个属性描述,此时学的模型函数表达式为:,亦称之为多元线性回归,在这样的情况下,求参数w和b时,可将其通过最小二乘法转化为矩阵求解,转化后的矩阵表达式为
其中为满秩矩阵或正定矩阵
是其逆矩阵。
在现实任务中,往往不是满秩矩阵,例如我们在许多任务中会遇到大量的变量,其数目甚至超过样例数,导致X的列数对于行数,
显然不满秩,此时可解出多个w值,他们都能使军方误差最小化,选择哪一个解作为输出,将由学习算法的归纳偏好决定,而更通常的做法是我们会引入一个正则化项。
2、逻辑回归(对数几率回归)
若我们此时要进行的是二分类任务,其输出标记,但我们知道线性回归模型产生的预测值
是实数,此时我们需要将实数值转化为0/1值即可,最理想的转化函数是“单位阶跃函数,而这一过程的计算可使用最大似然法来估计w和b,虽然有很多解,但我们可以使用经典的数值优化算法如梯度下降法、牛顿法得到最优解。
3、线性判别分析
4、多分类任务
5、类别不平衡问题
附录一个简单的python实现的线性模型函数:
def regression(x):
'''基于tensorflow实现的线性模型'''
W = tf.Variable(tf.zeros([784, 10]), name="W")
b = tf.Variable(tf.zeros([10]), name="b")
y = tf.nn.softmax(tf.matmul(x, W) + b)
return y, [W, b]