问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 梯度下降法 怎么用

发布网友 发布时间:2022-04-25 20:05

我来回答

1个回答

热心网友 时间:2022-06-17 00:42

import numpy as np
import matplotlib.pyplot as plt
import random

class dataMinning:
datasets = []
labelsets = []

addressD = '' #Data folder
addressL = '' #Label folder

npDatasets = np.zeros(1)
npLabelsets = np.zeros(1)

cost = []
numIterations = 0
alpha = 0
theta = np.ones(2)
#pCols = 0
#dRows = 0
def __init__(self,addressD,addressL,theta,numIterations,alpha,datasets=None):
if datasets is None:
self.datasets = []
else:
self.datasets = datasets
self.addressD = addressD
self.addressL = addressL
self.theta = theta
self.numIterations = numIterations
self.alpha = alpha

def readFrom(self):
fd = open(self.addressD,'r')
for line in fd:
tmp = line[:-1].split()
self.datasets.append([int(i) for i in tmp])
fd.close()
self.npDatasets = np.array(self.datasets)

fl = open(self.addressL,'r')
for line in fl:
tmp = line[:-1].split()
self.labelsets.append([int(i) for i in tmp])
fl.close()

tm = []
for item in self.labelsets:
tm = tm + item
self.npLabelsets = np.array(tm)

def genData(self,numPoints,bias,variance):
self.genx = np.zeros(shape = (numPoints,2))
self.geny = np.zeros(shape = numPoints)

for i in range(0,numPoints):
self.genx[i][0] = 1
self.genx[i][1] = i
self.geny[i] = (i + bias) + random.uniform(0,1) * variance

def gradientDescent(self):
xTrans = self.genx.transpose() #
i = 0
while i < self.numIterations:
hypothesis = np.dot(self.genx,self.theta)
loss = hypothesis - self.geny
#record the cost
self.cost.append(np.sum(loss ** 2))
#calculate the gradient
gradient = np.dot(xTrans,loss)
#updata, gradientDescent
self.theta = self.theta - self.alpha * gradient
i = i + 1

def show(self):
print 'yes'

if __name__ == "__main__":
c = dataMinning('c:\\city.txt','c:\\st.txt',np.ones(2),100000,0.000005)
c.genData(100,25,10)
c.gradientDescent()
cx = range(len(c.cost))
plt.figure(1)
plt.plot(cx,c.cost)
plt.ylim(0,25000)
plt.figure(2)
plt.plot(c.genx[:,1],c.geny,'b.')
x = np.arange(0,100,0.1)
y = x * c.theta[1] + c.theta[0]
plt.plot(x,y)
plt.margins(0.2)
plt.show()
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...频数和频率成正比,2频数一定时,频率与总次数成反比,对不对_百度... ...总次数之间的关系是( ) A.频数越大,频率越大 B.总次数一定时,频数越... 实验的总次数、频数及频率三者的关系是( )A.频数越大,频率越大B.频数... 嘎牙鱼的做法大全 安无线网要用多少元网费要交多少元不用用了要不要交网费,想寻求大家的... 无线网费1年多少钱 "Hbr"作为“港”的缩写,其在英语中的使用频率和应用示例如何? 【车主点评:吉利汽车帝豪GL 使我荣华富贵】 请问,如果,家用,自动挡,帝豪gl,英朗,科沃兹,卡罗拉,轩逸,同等价位,建议... ...景点?既能休闲的时候看看又能长点知识@@谢谢各位了! 深度学习求最小值为什么要使用梯度下降 预算10万左右,省油的轿车,有哪些值得入手的? 想要买个10万以内的车,哪款车的油耗比较低? 梯度下降法和随机梯度下降法的区别 怎么把抬起来亮屏关掉? 十万元预算,哪款代步车动力够且油耗低? 10万左右油耗低问题少的车,哪款车好呢? 梯度下降的例子 10万左右的车,那种最省油,性能比较好? 十万以内买什么车最好比较省油的 梯度下降为什么需要不断迭代,不能一次就求出来 最小二乘法和梯度下降法有哪些区别? 梯度下降法和牛顿法的区别? 简述梯度下降的概念 苹果电脑怎么下载淘宝 被小贷公司恐吓应该去哪申诉 网络小贷,他的催收手段是什么?是轰炸本人?还是轰炸通讯录里面的人 众安小贷催收暴力吗 小贷公司上门催收恐吓可以报警吗 小贷公司上门催收恐吓可以报警吗? 十万以内的车,那些性价比高些,省油呢? 10万左右买什么车好,家用省油? 想买个既不贵又省油的轿车10万左右求推荐? 准备入手一辆十万块钱左右的suv,油耗低一点,哪一款合适? 有哪些10万左右的油耗低、安全性高的车推荐? 十万左右最省油的车? 十万左右油耗低的车有哪些? 十万左右什么车比较省油呀? 新能源电动汽车有哪些牌子?求介绍下 12306上购买火车票,身份证号却显示“待核验”,这怎么弄? 新能源汽车,有哪些新能源?目前新能源电动车哪个好? 手机12306网上定动车车票,在输入身份证号码之后,个人身份证号所有数字和个人的详细住址会出现吗? 新能源车有哪些? 为什么我用12306买火车票老是说身份证号码或手机号码不正确,但我以前就没注册过,怎么回事 如何对待迈锐医疗强迫解约200大学生一事? 12306官网预定火车票老是提示“请正确输入18位的身份证号!&quot;怎么办? 英文名字叫迈锐,怎样拼写 深圳市迈锐物流有限公司怎么样? 江西迈锐机械有限公司怎么样? 陕西迈锐机电自动化有限公司怎么样?