数据挖掘-实验-神经网络


现在有这样一个场景,如花,小倩,小明和小强四位好基友/闺蜜偶尔一起看点电影。前四行是他们之前看电影的记录,比如第一次[0,0,1,0]表示的是 只有小明一个人去看了电影。第二次[1,1,1,1]表示的是他们都去看电影了...

但是第五次,已知如花和小倩去了,小明没去。

问:小强是不是喜欢如花?

思路:先用神经网络预测一下第五次小强去没去,然后找到一个小强是否喜欢如花的理由。

导入包与数据

1
2
3
4
from numpy import array, exp, random, dot

X = array([[0,0,1],[1,1,1],[1,0,1],[0,1,1]]) # 前四次如花,小倩,小明的去看电影情况
y = array([[0,1,1,0]]).T # 前四次小强一个人的看电影情况

初始化权重(这个例子中删减了偏向)

1
2
random.seed(1)
weights = 2 * random.random((3,1)) - 1

进行迭代

1
2
3
4
5
for i in range(10000):
output = 1/(1+exp(-dot(X, weights)))
error = y - output
delta = error * output * (1 - output)
weights += dot(X.T, delta)

打印10000次迭代后的权重值

1
print(weights)

预测如花去,小倩去,小明不去的情况下,小强去不去?

1
print(1/(1+exp(-dot([[1,1,0]],weights))))

最后,小强是否喜欢如花?