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实现的更多相关文章

  1. 【机器学习】线性回归python实现

    线性回归原理介绍 线性回归python实现 线性回归sklearn实现 这里使用python实现线性回归,没有使用sklearn等机器学习框架,目的是帮助理解算法的原理. 写了三个例子,分别是单变量的 ...

  2. 线性回归 python 代码实现

    本代码参考自:https://github.com/lawlite19/MachineLearning_Python#%E4%B8%80%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%B ...

  3. 机器学习3- 一元线性回归+Python实现

    目录 1. 线性模型 2. 线性回归 2.1 一元线性回归 3. 一元线性回归的Python实现 3.1 使用 stikit-learn 3.1.1 导入必要模块 3.1.2 使用 Pandas 加载 ...

  4. 机器学习4- 多元线性回归+Python实现

    目录 1 多元线性回归 2 多元线性回归的Python实现 2.1 手动实现 2.1.1 导入必要模块 2.1.2 加载数据 2.1.3 计算系数 2.1.4 预测 2.2 使用 sklearn 1 ...

  5. 李宏毅机器学习课程笔记-2.5线性回归Python实战

    本文为作者学习李宏毅机器学习课程时参照样例完成homework1的记录. 任务描述(Task Description) 现在有某地空气质量的观测数据,请使用线性回归拟合数据,预测PM2.5. 数据集描 ...

  6. 线性回归 python小样例

    线性回归优点:结果易于理解,计算上不复杂缺点:对非线性的数据拟合不好适用数据类型:数值型和标称型数据horse=0.0015*annualSalary-0.99*hoursListeningToPul ...

  7. 机器学习作业(一)线性回归——Python(numpy)实现

    题目太长啦!文档下载[传送门] 第1题 简述:设计一个5*5的单位矩阵. import numpy as np A = np.eye(5) print(A) 运行结果: 第2题 简述:实现单变量线性回 ...

  8. 线性回归——Python代码实现

    import numpy as np def computer_error_for_give_point(w, b, points): # 计算出 观测值与计算值 之间的误差, 并累加,最后返回 平均 ...

  9. Python学习笔记-StatsModels 统计回归(1)线性回归

    1.背景知识 1.1 插值.拟合.回归和预测 插值.拟合.回归和预测,都是数学建模中经常提到的概念,而且经常会被混为一谈. 插值,是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数 ...

随机推荐

  1. 几个常用的内存、CPU飙高 分析工具

    Process Hacker.Windbg.vs2017 调试托管内存.Microsoft.Samples.Debugging.ants memory profiler.ants performanc ...

  2. 自定义经纬度索引(非RTree、Morton Code[z order curve]、Geohash的方式)

    自定义经纬度索引(非RTree.Morton Code[z order curve].Geohash的方式) Custom Indexing for Latitude-Longitude Data 网 ...

  3. redux、immutablejs和mobx性能对比(三)

    四.我的结论 通过第三部分的数据数据分析,我觉得我们可以得到以下结论: 无论是在开发环境还是测试环下页面的首次加载速度结果都是:redux>immutablejs>mobx,但是他们之间的 ...

  4. java三元运算符

    由?:符号表示的,具体的含义其实就和if-else结构的含义差不多,这种运算符会将某个条件作两种处理,如果满足条件的话就执行第一个结果,如果不满足的话就执行另外一个结果,例如: Int A,B,C;  ...

  5. java简单数组定义

    public class Shuzu { static int[] array = new int[] { 32, 2, 2, 5, 45, }; int[] array1[] = new int[1 ...

  6. 改bug后 fix bug 时,一个不错的修复描述模板

    *问题原因:* 问题出现的原因.*解决方法:* 问题的解决方案.*影响分支:* 影响哪些分支. *相关修改:* 具体的修改文件列表.*自测结果:* 自行测试了哪些用例,将大概步骤描述出来. *影响功能 ...

  7. 关于 Blog 修改

    关于 Blog 修改 本 Blog 使用的是 WordPress,每次升级 WordPress 都需要修改文件,以修正一些问题,因此做个总记录,便于自己修改. 解决 WordPress 无法打开中文链 ...

  8. Centos7 下安装Apache2 + MySQL + PHP7

    Apache 1.安装Apache yum install httpd 2.设置服务器开机自动启动Apache systemctl enable httpd.service 若要验证是否自动启动可在重 ...

  9. Directly output the object name

    package basic.java; public class Case { public static void main(String[] args) { Student s = new Stu ...

  10. maven(17)-自动发布到远程linux服务器

     发布方式 手工方式:需要做一系列的工作,包括打WAR包,上传到服务器,重启服务器,删除旧文件等 自动方式:一条命令完成以上所有过程 服务器环境 centos7.3和tomcat8,关于cento ...