python 非线性回归_机器学习入门之菜鸟之路——机器学习之非线性回归个人理解及python实现...
本文主要向大家介紹了機(jī)器學(xué)習(xí)入門之菜鳥之路——機(jī)器學(xué)習(xí)之非線性回歸個(gè)人理解及python實(shí)現(xiàn),通過具體的內(nèi)容向大家展現(xiàn),希望對大家學(xué)習(xí)機(jī)器學(xué)習(xí)入門有所幫助。
梯度下降:就是讓數(shù)據(jù)順著梯度最大的方向,也就是函數(shù)導(dǎo)數(shù)最大的放下下降,使其快速的接近結(jié)果。
Cost函數(shù)等公式太長,不在這打了。網(wǎng)上多得是。
這個(gè)非線性回歸說白了就是縮小版的神經(jīng)網(wǎng)絡(luò)。
python實(shí)現(xiàn):
1?import?numpy?as?np
2?import?random
3
4?def?graientDescent(x,y,theta,alpha,m,numIterations):#梯度下降算法
5?????xTrain?=x.transpose()
6?????for?i?in?range(0,numIterations):#重復(fù)多少次
7?????????hypothesis=np.dot(x,theta)??????????#h函數(shù)
8?????????loss=hypothesis-y
9
10?????????cost=np.sum(loss**2)?/?(2*m)
11?????????print("Iteration?%d?/?cost:%f"%(i,cost))
12?????????graient=np.dot(xTrain,loss)/m
13?????????theta=theta-alpha*graient
14?????return?theta
15
16?def?getData(numPoints,bias,variance):#自己生成待處理數(shù)據(jù)
17?????x=np.zeros(shape=(numPoints,2))
18?????y=np.zeros(shape=numPoints)
19?????for?i?in?range(0,numPoints):
20?????????x[i][0]=1
21?????????x[i][1]?=?i
22?????????y[i]=(i+bias)+random.uniform(0,1)*variance
23?????return?x,y
24
25?X,Y=getData(100,25,10)
26?print("X:",X)
27?print("Y:",Y)
28
29?numIterations=100000
30?alpha=0.0005
31?theta=np.ones(X.shape[1])
32?theta=graientDescent(X,Y,theta,alpha,X.shape[0],numIterations)
33?print(theta)
運(yùn)行結(jié)果:
......輸出數(shù)據(jù)太多,只截取后面十幾行
Iteration?99988?/?cost:3.930135Iteration?99989?/?cost:3.930135Iteration?99990?/?cost:3.930135Iteration?99991?/?cost:3.930135Iteration?99992?/?cost:3.930135Iteration?99993?/?cost:3.930135Iteration?99994?/?cost:3.930135Iteration?99995?/?cost:3.930135Iteration?99996?/?cost:3.930135Iteration?99997?/?cost:3.930135Iteration?99998?/?cost:3.930135Iteration?99999?/?cost:3.930135[30.54541676??0.99982553]
其中遇到一個(gè)錯(cuò)誤。
TypeError:?unsupported?operand?type(s)?for?*:?‘builtin_function_or_method‘?and?‘float‘
因?yàn)槲业谖逍衳Train?=x.transpose()。剛開始沒加括號(hào)。直接用的xTrain?=x.transpose
打印一下xTrain是
只是創(chuàng)建了一個(gè)transpose方法,并沒有真的給x轉(zhuǎn)置。加上括號(hào)就好了。再打印xTrain就能正常顯示轉(zhuǎn)置后的x了
本文由職坐標(biāo)整理并發(fā)布,希望對同學(xué)們有所幫助。了解更多詳情請關(guān)注職坐標(biāo)人工智能機(jī)器學(xué)習(xí)頻道!
總結(jié)
以上是生活随笔為你收集整理的python 非线性回归_机器学习入门之菜鸟之路——机器学习之非线性回归个人理解及python实现...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海欢乐谷马戏团表演时间
- 下一篇: pythonffmpeg 推流_Pyth