简单神经网络实现 02
来源:互联网 发布:麦克德莫特 数据 编辑:程序博客网 时间:2024/05/22 21:20
误差选择均方误差
梯度下降步骤:
数据集为研究生学院录取数据,来源。
数据格式:
admit这一栏为标签,其余的栏目是特征。
网络没有设置隐层。
代码:
import pandas as pdimport numpy as npadmissions = pd.read_csv('binary.csv')#把rank特征转换成one-hotdata = pd.concat([admissions, pd.get_dummies(admissions['rank'], prefix='rank')], axis = 1)data = data.drop('rank', axis = 1)#归一化for field in ['gre', 'gpa']: mean, std = data[field].mean(), data[field].std() data.loc[:, field] = (data[field] - mean) / std#划分测试集np.random.seed(1)sample = np.random.choice(data.index, size = int(len(data) * 0.9), replace = False)data, test_data = data.ix[sample], data.drop(sample)features, targets = data.drop('admit', axis = 1), data['admit']featrues_test, targets_test = test_data.drop('admit', axis = 1), test_data['admit']def sigmoid(x): return 1 / (1 + np.exp(-x))n_records, n_features = features.shapelast_loss = Noneweights = np.random.normal(scale = 1 / n_features ** .5, size=n_features)epoches = 5000learn_rate = 0.5for e in range(epoches): del_w = np.zeros(weights.shape) for x, y in zip(features.values, targets): output = sigmoid(np.dot(x, weights)) error = y - output del_w += error * output * (1 - output) * x weights += learn_rate * del_w / n_records if e % (epoches / 10) == 0: out = sigmoid(np.dot(features, weights)) loss = np.mean((out - targets) ** 2) if last_loss and last_loss < loss: print("Train loss: ", loss, " loss increasing") else: print("Train loss: ", loss) last_loss = losstest_out = sigmoid(np.dot(featrues_test, weights))predictions = test_out > 0.5accuracy = np.mean(predictions == targets_test)print('accuracy:%.3f'%accuracy)
阅读全文
0 0
- 简单神经网络实现 02
- python简单实现神经网络
- 实现简单的神经网络
- 简单神经网络实现 01
- 简单神经网络实现 03
- CNN卷积神经网络简单实现
- Matlab实现简单BP神经网络
- 神经网络BP的简单实现
- BP神经网络的简单实现
- python实现简单神经网络算法
- 简单的BP神经网络实现
- BP神经网络python简单实现
- python实现简单神经网络算法
- BP神经网络python简单实现
- 手动实现简单的神经网络(唐宇迪神经网络课程笔记)
- 最简单的人工神经网络实现
- 最简单的三层神经网络Matlab实现
- BP神经网络设计的matlab简单实现
- Linux 习题2
- 前端面试-JavaScript篇
- 小蜜蜂单片机串口发送字符串
- MONGODB 与sql聚合操作对应图
- 搜索菜谱二级列表
- 简单神经网络实现 02
- socket之重叠io
- 从数据库中查询,两个表中某个字段相等时
- chrome 改变网页主题 设置黑色主题网页
- NDK开发--CMake篇
- 企业用机械设备行业ERP有哪些作用?
- 判断一个数是2的整数次幂
- pwnable.kr
- 简单的Android之移动小球