【发布时间】:2017-07-23 17:10:00
【问题描述】:
import numpy as np
np.random.seed(0)
a = np.random.randint(1,100, size= 1000).reshape(1000,1)
b = np.random.randint(0,2, size=1000).reshape(1000,1)
y = np.where(b==0,a*2, a*3)
X = np.hstack((a,b))
y = y
from sklearn.preprocessing import StandardScaler
sx = StandardScaler()
X = sx.fit_transform(X)
sy = StandardScaler()
y = sy.fit_transform(y)
w0 = np.random.normal(size=(2,1), scale=0.1)
for i in range(100):
input_layer = X
output_layer = X.dot(w0)
error = y - output_layer
square_error = np.sqrt(np.mean(error**2))
print(square_error)
w0+= input_layer.T.dot(error)
如果我理解正确,线性激活函数总是 f(x) = x。
如果你检查这段代码,你会看到平方误差越来越大,我不知道如何用 NN 解决这个简单的线性问题。我知道还有其他模型和库,但是我正在尝试这样做。
【问题讨论】:
标签: python neural-network linear-regression