线性回归——Python代码实现
import numpy as np
def computer_error_for_give_point(w, b, points): # 计算出 观测值与计算值 之间的误差, 并累加,最后返回 平均误差
loss = 0
for i in range(len(points)):
x = points[i, 0]
y = points[i, 1]
loss += ((w * x + b ) - y) ** 2
return loss/float(len(points))
# 下面函数只求导一次更新 w 和 b, 后面可用迭代方法多次更新 w, b
def get_gradient(w_current, b_current, points, LearningRate):
N = len(points)
w_gradient = 0
b_gradient = 0
for i in range(N):
x = points[i, 0]
y = points[i, 1]
w_gradient += 2/N * ((w_currentx+b_current)-y)x
b_gradient += 2/N * ((w_currentx+b_current)-y)
new_w = w_current - LearningRate w_gradient
new_b = b_current - LearningRate * b_gradient
return new_w,new_b # 以列表的形式返回
def gradeient_descent_run(w, b, points, learn_rate, iteration):
points = np.array(points)
LearnRate = learn_rate
for i in range(iteration):
w, b = get_gradient(w, b, points, LearnRate)
return w, b
if name == "main":
initialize_w = 0
initialize_b = 0
points = [[10, 10], [9, 9], [8, 8], [7, 7], [6, 6], [5, 5], [4, 4], [3, 3], [2, 2], [1, 1]]
w, b = gradeient_descent_run(initialize_w, initialize_b, points, 0.005, 100)
print(w)
print(b)
最新文章
- Java后台发送邮件
- HTML的初体验
- java中的集合和区别
- let it be
- ie6下absolute:fixed问题,完美兼容
- javascript中的 类初始化,遍历for in 以及with的用法
- 内存泄漏,当您使用的 GetDC 方法和 ReleaseDC 方法 CWnd 类版本
- spring 解析配置文件问题
- Eclipse如何生成带有自定tag的Java Doc
- Spring MVC中使用Mongodb总结
- poj 3436 (最大流)
- phpMyAdmin 手动输入数据库服务器IP
- 201521123073《Java程序设计》第2周学习总结
- 【原创】大数据基础之ElasticSearch(1)简介、安装、使用
- 神经机器翻译 - NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
- python批量下载微信好友头像,微信头像批量下载
- JavaScript中JSON对象和JSON字符串的相互转化
- Java静态成员与实例成员
- Mysql 5.7.21 单机多实例安装
- 详细解读 :java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed,Java报错之Connection is read-only.