线性回归 Python实现
import numpy as np
import pylab def plot_data(data, b, m):
x = data[:, 0]
y = data[:, 1]
y_predict = m*x + b
pylab.plot(x, y_predict, 'k-')
pylab.plot(x, y, 'o')
pylab.show() def gradient(data, initial_b, initial_m, learning_rate, num_iter):
b = initial_b
m = initial_m
x = data[:, 0]
y = data[:, 1]
n = float(len(data))
for i in range(num_iter):
b_gradient = -(1/n)*(y - m*x-b)
b_gradient = np.sum(b_gradient, axis=0)
m_gradient = -(1/n)*x*(y - m*x - b)
m_gradient = np.sum(m_gradient)
theta0 = b - (learning_rate*b_gradient)
theta1 = m - (learning_rate*m_gradient)
b = theta0
m = theta1
if i % 100 == 0:
j = (np.sum((y - m*x - b)**2))/n
print("参数b:{},参数m:{},损失值:{}".format(b, m, j))
return [b, m] def linear_regression():
# 导入数据
data = np.loadtxt('data.csv', delimiter=',') # 线性回归参数设定
learning_rate = 0.001
initial_b = 0.0
initial_m = 0.0
num_iter = 1000 b, m = gradient(data, initial_b, initial_m, learning_rate, num_iter)
plot_data(data, b, m) if __name__ == '__main__':
linear_regression()
测试结果:

线性回归 Python实现的更多相关文章
- 【机器学习】线性回归python实现
线性回归原理介绍 线性回归python实现 线性回归sklearn实现 这里使用python实现线性回归,没有使用sklearn等机器学习框架,目的是帮助理解算法的原理. 写了三个例子,分别是单变量的 ...
- 线性回归 python 代码实现
本代码参考自:https://github.com/lawlite19/MachineLearning_Python#%E4%B8%80%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%B ...
- 机器学习3- 一元线性回归+Python实现
目录 1. 线性模型 2. 线性回归 2.1 一元线性回归 3. 一元线性回归的Python实现 3.1 使用 stikit-learn 3.1.1 导入必要模块 3.1.2 使用 Pandas 加载 ...
- 机器学习4- 多元线性回归+Python实现
目录 1 多元线性回归 2 多元线性回归的Python实现 2.1 手动实现 2.1.1 导入必要模块 2.1.2 加载数据 2.1.3 计算系数 2.1.4 预测 2.2 使用 sklearn 1 ...
- 李宏毅机器学习课程笔记-2.5线性回归Python实战
本文为作者学习李宏毅机器学习课程时参照样例完成homework1的记录. 任务描述(Task Description) 现在有某地空气质量的观测数据,请使用线性回归拟合数据,预测PM2.5. 数据集描 ...
- 线性回归 python小样例
线性回归优点:结果易于理解,计算上不复杂缺点:对非线性的数据拟合不好适用数据类型:数值型和标称型数据horse=0.0015*annualSalary-0.99*hoursListeningToPul ...
- 机器学习作业(一)线性回归——Python(numpy)实现
题目太长啦!文档下载[传送门] 第1题 简述:设计一个5*5的单位矩阵. import numpy as np A = np.eye(5) print(A) 运行结果: 第2题 简述:实现单变量线性回 ...
- 线性回归——Python代码实现
import numpy as np def computer_error_for_give_point(w, b, points): # 计算出 观测值与计算值 之间的误差, 并累加,最后返回 平均 ...
- Python学习笔记-StatsModels 统计回归(1)线性回归
1.背景知识 1.1 插值.拟合.回归和预测 插值.拟合.回归和预测,都是数学建模中经常提到的概念,而且经常会被混为一谈. 插值,是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数 ...
随机推荐
- word转html实现预览(asp.net)
word转html 需要通过nuget 安装 Microsoft.Office.Interop.Word Microsoft.Office.Interop.Excel 使用 Microsoft.Asp ...
- SqlServer之一些小问题
如何用变量代替字段名? 将语句赋给一个varchar 变量,下列语句等价于(假设传进去的@id=’name‘):'select name from 表名' 如果直接执行这个语句,是没用的.@id不会 ...
- git revert后导致合并代码丢失
起因 我有一个开发分支antd3.x和一个主分支develop,我在合并antd3.x到develop的时候发现有些修改没有合并进来. 查找问题 然后就去网上查,发现这篇文章<git合并丢失代码 ...
- 前端把html表格生成为excel表格
最近公司改后台管理系统.要求导出台账项目等等为excel表格,找半天还真有,他是通过query.table2excel.js 实现,原谅我原生不会弄这个当然大家有可以给我留言. <!DOCTYP ...
- Java快速入门-04-Java.util包简单总结
学Java的程序员,lang包和util包最好是要过一遍的. 建议大家都序下载一个离线版开发文档,查阅非常方便,我给大家提供一个中文版 jdk1.8 离线文档,查看:JAVA - JDK 1.8 AP ...
- 线性表的Java实现--链式存储(双向链表)
有了单向链表的基础,双向链表的实现就容易多了. 双向链表的一般情况: 增加节点: 删除节点: 双向链表的Java实现: package com.liuhao.algorithm; publi ...
- LinkedList源码疑问记录
早上看linkedList源码时候,对于它的初始化一直不太明白.如下: transient int size = 0; /** * Pointer to first node. * Invariant ...
- CPU硬件辅助虚拟化技术
目前主要有Intel的VT-x和AMD的AMD-V这两种技术.其核心思想都是通过引入新的指令和运行模式,使VMM和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest O ...
- TCP状态统计 - 脚本命令
一.netstat命令说明 netstat常见参数 -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示 ...
- 毕向东_Java基础视频教程第21天_IO流(1)
第21天-01-IO流(对象的序列化) ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable接口(标记接口) 非必须, 但强烈建议所有 ...