本节是python实现一元回归的代码部分,理论参考链接: link.
代码下载地址link.
代码可直接赋值运行,如有问题请留言
1 环境准备
import numpy as np
import matplotlib.pyplot as pl
import matplotlib
matplotlib.rcParams['font.sans-serif']='SimHei'
matplotlib.rcParams['font.family']='sans-serif'
matplotlib.rcParams['axes.unicode_minus']=False
这些是需要的python组件和画图需要的包,matplotlib是画图的设置
2 读取文件方法设置
def loadDataset(filename):
X=[]
Y=[]
with open(filename,'rb') as f:
for idx,line in enumerate(f):
line=line.decode('utf-8').strip()
if not line:
continue
eles=line.split(',')
if idx==0:
numFea=len(eles)
eles=list(map(float,eles))#map返回一个迭代对象
X.append(eles[:-1])
Y.append([eles[-1]])
return np.array(X),np.array(Y)
3 预测值方法
def h(theta,X):
return np.dot(X,theta)
4 完成误差方法设计
def J(theta,X,Y):
return np.sum(np.dot((h(theta,X)-Y).T,(h(theta,X)-Y))/(2*m))
5 梯度下降方法
def bgd(alpha,maxloop,epsilon,X,Y):
m,n=X.shape
theta=np.zeros((2,1))
count=0
converged=False
error=np.inf
errors=[]
thetas={0:[theta[0,0]],1:[theta[1,0]]}
while count<=maxloop: if(converged): break count="count+1" temp1="theta[0,0]-alpha/m*(h(theta,X)-Y).sum()" temp2="theta[1,0]-alpha/m*(np.dot(X[:,1][:,np.newaxis].T,(h(theta,X)-Y))).sum()" #同步更新 theta[0,0]="temp1" theta[1,0]="temp2" thetas[0].append(temp1) thetas[1].append(temp2) error="J(theta,X,Y)" errors.append(error) if(error<epsilon): converged="True" return theta,errors,thetas < code></=maxloop:>
6 读取文件
先预览下读取的数据,这里用的一组不太好的数据
X,Y=loadDataset('./data/price_diff.csv')
print(X.shape)
print(Y.shape)
(243, 1)
(243, 1)
m,n=X.shape
X=np.concatenate((np.ones((m,1)),X),axis=1)
X.shape
(243, 2)
7 模型参数设置
alpha=0.000000000000000003
maxloop=3000
epsilon=0.01
result=bgd(alpha,maxloop,epsilon,X,Y)
theta,errors,thetas=result
xCopy=X.copy()
xCopy.sort(0)
yHat=h(theta,xCopy)
xCopy[:,1].shape,yHat.shape,theta.shape
((243,), (243, 1), (2, 1))
8 结果绘图
pl.xlabel(u'1')
pl.ylabel(u'2')
pl.plot(xCopy[:,1],yHat,color='red')
pl.scatter(X[:,1].flatten(),Y.T.flatten())
pl.show()
误差与迭代次数绘图
pl.xlim(-1,3000)
pl.xlabel(u'迭代次数')
pl.ylabel(u'代价函数')
pl.plot(range(len(errors)),errors)
pl.show()
Original: https://blog.csdn.net/weixin_44498127/article/details/124547011
Author: THE ORDER
Title: 数据分析python,线性回归
相关文章

基于tensorflow2.x的命名实体识别任务(三)
上一篇博客介绍了文本分类任务的text_cnn模型,本篇博客主要介绍一下另一个常见的nlp任务,命名实体识别。简单来说,命名实体识别也可以算分类,但是它的不同点在它是对整个句子的每一个字做实体标签预测...

TensorFlow模型保存和加载
1. SavedModel格式 为了将训练好的机器学习模型部署到各个目标平台(如服务器、移动端、嵌入式设备和浏览器等),我们的第一步往往是将训练好的整个模型完整导出(序列化)为一系列标准格式的文件。在...

mmdetection训练自己的COCO数据集及常见问题
训练自己的VOC数据集及常见问题见下文: mmdetection训练自己的VOC数据集及常见问题_不瘦8斤的妥球球饼的博客-CSDN博客_mmdetection训练voc 目录 一、环境安装 二、训练...

5.1 tensorflow2实现简单线性回归分析——python实战
抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。 Original: https://blog.cs...

centos7.9部署Tensorflow版本
1、虚拟机部署Centos7.9最小版本 CentOS-7-x86_64-Minimal-2009.iso TensorFlow 可以在系统范围内被安装,在一个 Python 虚拟环境,作为一个 Do...

构建自己的听力词库(python实现语音识别单词与停顿分割)
想要构建自己的听力词库,把听力材料中不需要的词去掉,根据我提供的变化的词单截出来单词语音来练习。 使用windows,pycharm。 环境配置 speech_recognition:为了达到语音识别...

yolov5 训练crowded human 【visible body detection】
0 前言 我使用的GPU平台:https://cloud.videojj.com/auth/register?inviter=18452&activityChannel=student_inv...

TensorFlow2中Embedding层的使用(tf.keras.layers.Embedding)
1 简介 嵌入层将 正整数(下标)转换为具有固定大小的向量,如[[4],[20]]->[[0.25,0.1],[0.6,-0.2]] Embedding层只能作为模型的第一层 tf.keras....

【kaldi】chain-model的TCP server部署
用kaldi提供的脚本部署chain-model的TCP server。 1.生成配置文件 相关指令: exp /chain/extractor_i1 exp /chain/tdnn_2a_i1_sp...

联邦学习–论文汇总(十一)
回归老本行,Non-iid !!! 【1】SEPARATE BUT TOGETHER: UNSUPERVISED FEDERATED LEARNING FOR SPEECH ENHANCEMENT F...

语音识别(ASR)论文优选:关注语音识别系统Fairness问题Towards Measuring Fairness in Speech Recognition
声明:平时看些文章做些笔记分享出来,文章中难免存在错误的地方,还望大家海涵。搜集一些资料,方便查阅学习:http://yqli.tech/page/speech.html。语音合成领域论文列表请访问h...

GAN生成对抗网络—-手写数据实现
目录 GAN------ 以假乱真 训练流程 环境 数据集 完整代码 结果展示 GAN------ 以假乱真 G...

nodejs读写yaml
nodejs读写yaml npm install -g js-yaml // read.js const fs = require('fs'); const yaml = require('js-ya...

传统语音识别介绍【二】—— 特征提取
常用的一些声学特征如下: (1) 线性预测系数(LPC),线性预测分析是模拟人类的发声原理,通过分析声道短管级联的模型得到的。假设系统的传递函数跟全极点的数字滤波器是相似的,通常用 12一16个极点就...

深度学习进行人体的姿态估计
深度学习进行人体姿态估计 简介 内容 * 什么是姿态估计? - 自下而上与自上而下的方法 姿态估计的重要性 什么是人体姿态估计? - 什么是2D人体姿态估计? 什么是3D人体姿态估计? 三维人体建模 ...