python - 同一算法 scikit 神经网络多次运行的不同预测

标签 python machine-learning scikit-learn neural-network

因为 MLP 可以实现任何功能。我有以下代码,我试图用它来实现 AND 函数。但我发现多次运行该程序时,我最终得到了不同的预测值。为什么会出现这种情况?另外,如何确定不同层必须提供哪种类型的激活函数?

from sknn.mlp import Regressor,Layer,Classifier
import numpy as np   
X_train = np.array([[0,0],[0,1],[1,0],[1,1]])
y_train = np.array([0,0,0,1])
nn = Classifier(layers=[Layer("Softmax", units=2),Layer("Linear", units=2)],learning_rate=0.001,n_iter=25)
nn.fit(X_train, y_train)
X_example = np.array([[0,0],[0,1],[1,0],[1,1]])
y_example = nn.predict(X_example)
print (y_example)

最佳答案

-每次运行获得的不同值是因为您的权重是随机初始化的。 -激活函数具有不同的属性。您可以根据自己的经验来决定哪一个最适合您的情况,也可以阅读它们的工作原理 ( https://stats.stackexchange.com/questions/115258/comprehensive-list-of-activation-functions-in-neural-networks-with-pros-cons )

关于python - 同一算法 scikit 神经网络多次运行的不同预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36090019/

相关文章:

python - Google App Engine 应用程序是否可以交流或控制机器学习模型或任务?

python - 预期是二维数组,却得到一维数组,而是错误

python sklearn 岭回归归一化

Python并测量以毫秒为单位的时间并在满足阈值时中止

python - 在 Python 中捕获 netcat shell 命令输出

python - 定义正确的requirements.txt文件

python - 将 sklearn GridSearchCV 与 CaliberatedClassifierCV 一起使用是否有意义?

python - subprocess.Popen 不是线程安全的吗?

python - 为什么我再次执行时confusion_matrix不一样?

python - 如何为 catboost 创建自定义评估指标?