1、线性回归
定义一个线性回归类LinearRegression
只使用一个库numpy
在一开始导入
from numpy import *
(1)先进行初始化
由于传入的是训练样本X以及标签y,所以初始化函数为:
def __init__(self, X, y):
self.m = len(X)
self.n = len(X[0])
self.theta = ones((self.n, 1))
self.X = mat(X)
self.y = mat(y).transpose()
这里m表示训练样本的数量,n表示特征的维度,theta是需要计算的参数。
(2)计算损失函数
损失函数公式如下:
可能有的公式会除以一个训练样本的大小m,由于m是一个常数,除不除都没有什么影响,关系不大。我这里采用的是不除,个人感觉看的清爽一些。
代码如下:
def costFunction(self):
h = dot(self.X, self.theta)
J = 0.5 * sum(array((self.y - h)) ** 2)
if isnan(J):
r