MLを学び、単層ニューラルネットワークを作成しようとしていました。学習の部分は完全に進んでいます。残念ながら、私はどのように結果ウェイトsyn0
を使用して、x_test
のテストケースに対する答えを予測できるのか理解できません。ここでML予測アルゴリズムに問題がある
はコードです:
import numpy as np
def nonlinear(x, deriv = False):
if(deriv==True):
return x*(1-x)
return 1/(1+np.exp(-x))
def predict(x_test, y_test, ss):
prediction = nonlinear(np.abs(np.dot(x_test,ss)))
error = np.mean(np.abs(y_test - prediction))
print("P:",prediction,"\nE:",error)
x = np.array([[1,0,1],
[0,1,1],
[0,1,0],
[1,1,1]])
y = np.array([[1],
[0],
[0],
[0]])
x_test = np.array([[1,0,0],
[1,0,1],
[0,1,1],
[0,1,0]])
y_test = np.array([[1],
[1],
[0],
[0]])
np.random.seed(1)
syn0 = 2*np.random.random((3,1)) - 1
for _ in range(100000):
l0 = x
l1 = nonlinear(np.dot(l0, syn0))
l1_error = y - l1
if (_%10000) == 0:
print("Error at Gen",_,":", str(np.mean(np.abs(l1_error))))
print(l1)
l1_delta = l1_error * nonlinear(l1, deriv = True)
syn0 += l0.T.dot(l1_delta)
print(syn0)
predict(x_test, y_test, syn0)
私は本当に任意の助けをいただければ幸いです。ありがとう!
P.S.してくださいStackOverflowによると、この質問をdownvoteしないでください、私はより多くの私の答えdownvoted得る質問をブロックされます。私がこれを改善できるのか、それとも重複しているのかを教えてください。私は、ここの驚くべき心のすべてからそんなに多くを学ぶ特権を失うことが嫌いです。
は、あなたが何を意味するthisウェブサイトがお勧め、あなたの問題はより多くの実装で数学と少ないとあったと思いますか? 'predict(x_test、y_test、syn0)'を呼んでいる最後の行ですでに起こっています。その関数はあなたの予測と 'x_test'のエラーを出力します – plumSemPy
しかし、予測はオフです。エラーは常に1のスケールでほぼ0.5であり、すべての予測はほぼ1です。 –