图1. 机器学习的基本过程
h(θ)=θ0+θ1x…(1)h(θ)=θ0+θ1x…(1)
其中h是函数(可能更习惯叫做y,但在机器学习中y一般表示已知的函数值,即后面的因变量;这里的h相当于预测得到的y),θ是函数的参数(也可以看做是每个自变量的权重,权重越大,对y的影响也越大),x是自变量。
上面提到过,训练集就是许多的(x, y)数据对的集合。其中x是因变量,y是自变量。通常认为x的变化引起了y的改变,即x的值决定了y的值。在预测房屋价格的模型中,假如我们能找到所有影响房屋价格的因素(所有的x),并且确定各个因素准确的参数(θ),那么理论上可以准确的预测出任何房屋的价格(y)。
x=⎛⎝⎜⎜⎜⎜⎜x(1)x(2)⋮x(m)⎞⎠⎟⎟⎟⎟⎟x=(x(1)x(2)⋮x(m))
X=⎡⎣⎢⎢⎢⎢⎢⎢⎢x(1)1x(2)1⋮x(m)1x(1)2x(2)2⋮x(m)2……⋱…x(1)nx(2)n⋮x(m)n⎤⎦⎥⎥⎥⎥⎥⎥⎥X=[x1(1)x2(1)…xn(1)x1(2)x2(2)…xn(2)⋮⋮⋱⋮x1(m)x2(m)…xn(m)]
无论是单因素还是多因素,每一个样本中都只包含一个因变量(y),因此只需要区分不同样本间的y,y(1), y(2), ..., y(m),其中m表示样本的个数;
用列向量y表示为:
y=⎛⎝⎜⎜⎜⎜⎜y(1)y(2)⋮y(m)⎞⎠⎟⎟⎟⎟⎟y=(y(1)y(2)⋮y(m))
也许是某种约定,在机器学习中,一般都是用θ来表示参数,参数是自变量X的参数(也可以看做是每个自变量的权重,权重越大的自变量对y的影响也越大),理论上,有多少个自变量就有多少个参数,但就像在直线方程y = ax + b中表现出来的那样,除了x的参数a,还有一个常数项b。因此参数一般比自变量的个数多一个,当有n个自变量的时候,会有n+1个参数。
最终的模型是由一个特定的方程来表示的,在训练模型的过程中,确定了这个方程中的未知参数。这些参数对于所有的样本都是相同的,例如第一个样本x(1)中的第一个自变量x1的参数与任意其他样本x(i)中第一个自变量x1的参数是相同的。因此不用区分样本间的参数,只用区分不同自变量之间的参数,可以使用一个n+1维的列向量θ来表示所有的参数:
θ=⎛⎝⎜⎜⎜⎜θ0θ1⋮θn⎞⎠⎟⎟⎟⎟θ=(θ0θ1⋮θn)
这里说的模型就是一个特定的函数,上面已经提过,模型一般使用h来表示。下面用线性回归模型来举例说明模型的符号表示。
直接表示方法是我们在没有学习线性代数之前的代数表示方式。
hθ(x)=θ0+θ1xhθ(x)=θ0+θ1x
hθ(x)=θ0+θ1x1+θ2x2+θ3x3+…+θnxnhθ(x)=θ0+θ1x1+θ2x2+θ3x3+…+θnxn
学习了线性代数后,可以使用矩阵来表示上面的方程,不仅表示起来方便,直接进行矩阵运算效率也更高效。在这里需要特别说明的一点是,为了配合矩阵的表示,在上面的方程中添加了x0,并且x0=1,且将θ0作为x0的参数。
hθ(x)=Xθ=⎡⎣⎢⎢⎢⎢⎢⎢⎢x(1)0x(2)0⋮x(m)0x(1)1x(2)1⋮x(m)1……⋱…x(1)nx(2)n⋮x(m)n⎤⎦⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢θ0θ1⋮θn⎤⎦⎥⎥⎥⎥hθ(x)=Xθ=[x0(1)x1(1)…xn(1)x0(2)x1(2)…xn(2)⋮⋮⋱⋮x0(m)x1(m)…xn(m)][θ0θ1⋮θn]
,此时X是一个m x (n+1)的矩阵,每一行表示一个样本,每一列表示一个特征,结果是一个m x 1的列向量,其中m表示样本的个数,n表示变量的个数(X中的每一列具有同样的参数,一列表示在不同的样本中同一个特征的取值);
hθ(x)=θTx=[θ0θ1…θn]⎡⎣⎢⎢⎢⎢x0x1⋮xn⎤⎦⎥⎥⎥⎥hθ(x)=θTx=[θ0θ1…θn][x0x1⋮xn]
,此时x是一个(n+1)维的列向量,每一行表示一个变量的值。
参考:https://www.coursera.org/learn/machine-learning
本文链接:http://task.lmcjl.com/news/5583.html