第一个机器学习算法——单变量线性回归
- m:表示训练集数据的总量
- x:表示输入变量
- y:表示输出变量
- (x,y):表示一个训练样本
- (x(i),y(i)):表示第i个训练样本
对于一元线性回归(单变量线性回归)来说,学习算法为 y = ax + b。我们换一种写法: hθ(x) = θ0 + θ1x1
使用sklearn实现线性回归
# -*- coding:utf-8 -*-
# @Time:4/18/19 7:50 PM
# @Author:CIGA
# @Filename:01.py
# @Software:PyCharm
"""
"""
import numpy as np
from sklearn.linear_model import LinearRegression
# 生成数据
# np.random.rand(100,1)生成一个大矩阵,共100行1列
# 每一行都是一个1乘1的小矩阵
# 小矩阵中的数值为[0,1)
a = np.random.rand(100,1)
# X、y即为关于a矩阵进行运算得到的新矩阵
X = 2*a
y = 4+3*X+a
# print(a)
# print(X)
# print(y)
# 生成线性回归的对象
lin_reg = LinearRegression()
# fit方法训练模型
lin_reg.fit(X,y)
# y=kx+b
# intercept_是截距,coef_是系数
# intercept_=b,coef_=k
print(lin_reg.intercept_,lin_reg.coef_)
# 进行预测
# 必须是二维矩阵
X_new1 = np.array([[0]])
X_new2 = np.array([[2]])
# 生成一个大矩阵
# 大矩阵中2乘1
X_new3 = np.array([[1],[2]])
# print(X_new1)
# print(X_new2)
# print(X_new3)
print(lin_reg.predict(X_new1))
print(lin_reg.predict(X_new2))
print(lin_reg.predict(X_new3))
线性回归实际上要做的事情就是: 选择合适的参数(θ0, θ1),使得hθ(x)方程,很好的拟合训练集。
MSE(mean square error)
损失(代价)函数——均方误差
使用真实值减去预测值