当前位置:   article > 正文

机器学习---一元线性回归(实战)_一元回归数据集

一元回归数据集

1.数据集展示

导入相关包

  1. import numpy as np
  2. from matplotlib import pyplot as plt

载入数据,是一个99行2列的数据

  1. #载入数据
  2. data = np.genfromtxt("data.csv",delimiter=",")
  3. print(data)

2.定义损失函数和梯度下降法3.333

  1. #学习率learning rate
  2. lr = 0.0001
  3. #截距
  4. b=0
  5. #斜率
  6. k=0
  7. #最大迭代个数
  8. epochs=50
  9. #最小二乘法
  10. def compute_error(b,k,x_data,y_data):
  11. totalError = 0
  12. for i in range(0,len(x_data)):
  13. totalError+=(y_data[i]-(k*x_data[i]+b))**2
  14. return totalError /float(len(x_data))/2
  15. def gradient_descent_runner(x_data,y_data,b,k,lr,epochs):
  16. #计算总数据量
  17. m = float(len(x_data))
  18. #循环epochs次
  19. for i in range(epochs):
  20. b_grad=0
  21. k_grad=0
  22. #计算梯度的总和再求平均
  23. for j in range(0,len(x_data)):
  24. b_grad+=(1/m)*((k*x_data[j]+b)-y_data[j])
  25. k_grad += (1/m) * (x_data[j])*(((k*x_data[j]+b)-y_data[j]))
  26. #更新b和k
  27. b = b-(lr*b_grad)
  28. k = k-(lr*k_grad)
  29. return b,k

3.可视化

  1. print("Starting b = {0}, k = {1}, error = {2}".format(b, k, compute_error(b, k, x_data, y_data)))
  2. print("Running...")
  3. b, k = gradient_descent_runner(x_data, y_data, b, k, lr, epochs)
  4. print("After {0} iterations b = {1}, k = {2}, error = {3}".format(epochs, b, k, compute_error(b, k, x_data, y_data)))
  5. # 画图
  6. plt.plot(x_data, y_data, 'b.') #"b是蓝色 .表示用点表示"
  7. plt.plot(x_data, k*x_data + b, 'r')
  8. plt.show()

4.使用Sklearn

  1. from sklearn.linear_model import LinearRegression
  2. import numpy as np
  3. from matplotlib import pyplot as plt
  4. data = np.genfromtxt("data.csv",delimiter=",")
  5. x_data=data[:,0]
  6. y_data=data[:,1]
  7. plt.scatter(x_data,y_data)
  8. plt.show
  9. print(x_data.shape)
  10. x_data = data[:,0,np.newaxis]
  11. y_data = data[:,1,np.newaxis]
  12. #创建并你和模型
  13. model = LinearRegression()
  14. model.fit(x_data,y_data)
  15. #画图
  16. plt.plot(x_data,y_data,'b .')
  17. plt.plot(x_data,model.predict(x_data),'r')
  18. plt.show

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/1005641
推荐阅读
相关标签
  

闽ICP备14008679号