示例:Python机器学习之简单线性回归

一、目的:通过sklearn理解简单线性回归也叫一元线性回归的实现方式

二、实现:

1、引用:

import matplotlib.pyplot as plt
import numpy as np
import math

2、构造数据:

x=np.array([1, 2, 3, 4, 5, 6, 7,8,9,10,11,23])
x=np.linspace(0,100,100)
r=np.random.normal(0,50,size=100)
y= 3*x+ r

3、绘制数据:

plt.scatter(x,y)
plt.show()

4、利用最小二乘法计算a和b(y=ax+b)

公式:

x_mean=np.mean(x)
y_mean=np.mean(y)

num=0.0
d=0.0
for x_z,y_z in zip(x,y):
    num+=(x_z- x_mean)*(y_z-y_mean)
    d+=(x_z-x_mean)**2
print(num)
print(d)

输出:

247499.42712910223
85016.83501683504
a=num/d
b=y_mean- a* x_mean

5、绘制回归曲线

plt.scatter(x,y)
plt.plot(x_result,x_result*a+b)
plt.show()

6、利用回归曲线预测结果

x_sample=100
y_sample=a*x_sample+b
y_sample

预测结果:

292.18324475748034

说明:简单线性回归就是利用存在线性关系的样本计算出最佳拟合,通过拟合来预估结果;

比如估算房子的价格,通常价格跟面积呈现线性相关,可以通过历史成交数据拟合面积价格曲线用来评估一套房子的价格,当然不仅仅是跟面积有关,开发商、年代、地理位置、学区等都有关系,可以应用更复杂的机器学习算法进行拟合,比如:多元线性回归

Github下载地址:https://github.com/HeBianGu/Python-sklearn.git

猜你喜欢

转载自blog.csdn.net/u010975589/article/details/88030859