import numpy as np from data_prep import features, targets, features_test, targets_test def sigmoid(x): return 1 / (1 + np.exp(-x)) def sigmoid_prime(x): return sigmoid(x) * (1 - sigmoid(x)) np.random.seed(42) n_records, n_features = features.shape last_loss = None # Initialize weights weights = np.random.normal(scale=1 / n_features**.5, size=n_features) # Neural Network hyperparameters epochs = 1000 learnrate = 0.5 for e in range(epochs): del_w = np.zeros(weights.shape) for x, y in zip(features.values, targets): output = sigmoid(np.dot(weights, x)) error = y - output error_term = output * (1 - output) del_w += error * error_term * x weights += learnrate * del_w / n_records if e % (epochs / 10) == 0: out = sigmoid(np.dot(features, weights)) loss = np.mean(
基于numpy+pandas的单层神经网络
最新推荐文章于 2022-07-06 16:41:43 发布
这篇博客介绍了如何使用numpy和pandas创建一个简单的神经网络。通过初始化权重、设置超参数,如迭代次数和学习率,然后利用梯度下降更新权重,最终在测试集上计算预测准确率。
摘要由CSDN通过智能技术生成