python实现机器学习之元线性回归
作者:婉如 发布时间:2022-05-30 06:02:54
标签:python,元线性回归
一、理论知识准备
1.确定假设函数
如:y=2x+7
其中,(x,y)是一组数据,设共有m个
2.误差cost
用平方误差代价函数
3.减小误差(用梯度下降)
二、程序实现步骤
1.初始化数据
x、y:样本
learning rate:学习率
循环次数loopNum:梯度下降次数
2.梯度下降
循环(循环loopNum次):
(1)算偏导(需要一个for循环遍历所有数据)
(2)利用梯度下降数学式子
三、程序代码
import numpy as np
def linearRegression(data_x,data_y,learningRate,loopNum):
w,b=0,0
#梯度下降
for i in range(loopNum):
w_derivative, b_derivative, cost = 0, 0, 0
for j in range(len(data_x)):
wxPlusb=w*data_x[j]+b
w_derivative+=(wxPlusb-data_y[j])*data_x[j]
b_derivative+=wxPlusb-data_y[j]
cost+=(wxPlusb-data_y[j])*(wxPlusb-data_y[j])
w_derivative=w_derivative/len(data_x)
b_derivative=b_derivative/len(data_x)
w = w - learningRate*w_derivative
b = b - learningRate*b_derivative
cost = cost/(2*len(data_x))
if i%100==0:
print(cost)
print(w)
print(b)
if __name__== "__main__": #_x:protected __x:private
x=np.random.normal(0,10,100)
noise=np.random.normal(0,0.05,100)
y=2*x+7+noise
linearRegression(x,y,0.01,5000)
四、输出
1.输出cost
可以看到,一开始的误差是很大的,然后减小了
最后几次输出的cost没有变化,可以将训练的次数减小一点
2.训练完的w和b
和目标w=2,b=7很接近
来源:https://blog.csdn.net/zhangergou0628/article/details/80436491
0
投稿
猜你喜欢
- 本文实例讲述了Python回文字符串及回文数字判定功能。分享给大家供大家参考,具体如下:所谓回文字符串,就是一个字符串,从左到右读和从右到左
- DataFrame对象的创建,修改,合并import pandas as pdimport numpy as np创建DataFrame对象
- 最近在公司的项目开发中使用到了 laravel 框架,采用的是前后端开发的模式。接触过前后端开发模式的小伙伴应该都知道,后端返回的数据格式需
- 最近在这找了好久的js菜单,都没找到满意的,今天找了个,觉得不错,最重要的是简单,希望大家可以参照一下先看看效果图吧:代码特点:js+css
- 1.CUDA驱动和CUDA Toolkit对应版本表一:CUDA驱动及CUDA Toolkit最高对应版本最新可查阅官方文档注:驱动是向下兼
- 日常我们见的多的水印大都是做到图片里的,我依据html元素的css position定位作出这个 * 印,供大家参考<!DOCTYPE
- 我一直不很明白在中国国内流行的设计风格,象在国外的很多地方都有鲜明的设计大方向,比如韩国站点设计一般比较花哨,所以动画很多,我们常常看到韩国
- 本文实例讲述了PHP自定义函数用法。分享给大家供大家参考,具体如下:Demo1.php<?php //标准函数,内置函数
- c语言里:c_p.c#include <stdio.h>void get_str_list(int n, char *b[2])
- 我就废话不多说了,直接上代码吧!import Imagefrom datetime import datetimeimport osstr
- 本文实例讲述了Python实现将蓝底照片转化为白底照片功能。分享给大家供大家参考,具体如下:import cv2import numpy a
- datetime的astimezone设置时区遇到的坑datetime有四个主要的模块:1、date 处理年、月、日。2、time 处理时、
- 前言这篇文章主要介绍了Python 字符串去除空格的6种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,来
- 每个人都可以编写CSS代码,甚至你现在已经让它为你的项目工作了。但是CSS还可以更好吗?开始用这5个Tips改进你的CSS吧!一、关于CSS
- 不知道用ASP写代码的朋友是不是和我有一样的感受,ASP中最头疼的就是调试程序的时候不方便,我想可能很多朋友都会用这样的方法&ldq
- 我在用 ASP 写一个数据库的应用的时候,总是被那些看起来好好的SQL语句执行起来产生的错误代码搞得头疼,请问有没有更好的解决办法啊?有,我
- 当使用AJAX进行GET请求的时候,会有一个现象就是刷新网页后,AJAX请求的数据没有改变,只有把IE的缓存清空,或者从新打开一个IE窗口的
- 前言ThinkPHP 3.2 基于 ThinkPHP 3.1 的基础上有许多的变化,我觉得这个版本应该设立为 ThinkPHP 4.0 而不
- what's the math 模块Python math 模块提供了许多对浮点数的数学运算函数。需要注意的是,这些函数一般是对平台
- 相信用python的同学不少,本人也一直对python情有独钟,毫无疑问python作为一门解释性动态语言没有那些编译型语言高效,但是pyt