難道你們請告訴我如何讓下面的代碼更pythonic?你如何使這段代碼更pythonic?
該代碼是正確的。充分披露 - 這是this機器學習課程講義#4中的問題1b。我應該在兩個數據集上使用牛頓算法來擬合邏輯假設。但他們使用matlab &我正在使用scipy
例如我有一個問題是矩陣保持四捨五入到整數,直到我初始化一個值爲0.0。有沒有更好的辦法?
感謝
import os.path
import math
from numpy import matrix
from scipy.linalg import inv #, det, eig
x = matrix('0.0;0;1' )
y = 11
grad = matrix('0.0;0;0' )
hess = matrix('0.0,0,0;0,0,0;0,0,0')
theta = matrix('0.0;0;0' )
# run until convergence=6or7
for i in range(1, 6):
#reset
grad = matrix('0.0;0;0' )
hess = matrix('0.0,0,0;0,0,0;0,0,0')
xfile = open("q1x.dat", "r")
yfile = open("q1y.dat", "r")
#over whole set=99 items
for i in range(1, 100):
xline = xfile.readline()
s= xline.split(" ")
x[0] = float(s[1])
x[1] = float(s[2])
y = float(yfile.readline())
hypoth = 1/ (1+ math.exp(-(theta.transpose() * x)))
for j in range(0,3):
grad[j] = grad[j] + (y-hypoth)* x[j]
for k in range(0,3):
hess[j,k] = hess[j,k] - (hypoth *(1-hypoth)*x[j]*x[k])
theta = theta - inv(hess)*grad #update theta after construction
xfile.close()
yfile.close()
print "done"
print theta
y = 11行是做什麼的? – SilentGhost 2009-06-17 14:05:15
設置酷點。 – Geo 2009-06-17 14:05:50
+1在句子中使用pythonic這個詞。 – samoz 2009-06-17 14:08:39