资源简介
根据慕课网“机器学习-实现简单神经网络”编写的python代码,实验环境为anaconda python3.6,感知器算法进行分类,数据为网上的花瓣数据,100个样本
代码片段和文件信息
# -*- coding: utf-8 -*-
import numpy as np
class Perceptron(object):
“““
eta: 学习率(01)一般是使用者自定义,然后根据经验调整
n_iter: 权重向量的训练次数,这里只训练10次
w_: 神经分叉权重向量
errors_: 用于记录神经元判断错误的次数
“““
def __init__(self eta=0.01 n_iter=10):
self.eta = eta
self.n_iter = n_iter
def fit(self x y):
“““
输入训练数据,训练神经元
x: 输入样本的向量
y: 样本对应的分类
x: shape[n_sample n_features]: 样本数量,每个样本的特征维度
x:[[123][456]],有2个样本,每个样本有3个特征
“““
#初始化权重向量的每个分量,这里初始化的值为0
#+1是为了w0,权重向量W的维度加1,多出的那一维用于计算激活函数的阈值
self.w_ = np.zeros(1+x.shape[1])
self.errors_ = []
“““
开始训练
每次出现预测错误的时候,把样本重新输入神经元,更新权重向量
这里设置的迭代次数我n_iter=10
如果迭代10次都无法分类正确,则终止
“““
for _ in range(self.n_iter):
errors = 0
“““
x:[[123][456]]
y:[1-1]
zip(xy): [([1 2 3] 1) ([4 5 6] -1)]
“““
for xi target in zip(x y):
update = self.eta * (target - self.predict(xi))
#xi是向量,target是实数
#更新权值
self.w_[1:] += update * xi
#更新阈值
self.w_[0] += update;
“““
统计预测的错误次数
int(True)=1
int(False)=0
“““
errors += int(update !=0.0)
self.errors_.append(errors)
def net_input(self x):
“““
输入向量与权重向量做点积求和
“““
return np.dot(x self.w_[1:]) + self.w_[0]
def predict(selfx):
“““
激活函数得到输出为1或-1的分类
大于等于0输出为1
小于0输出为-1
“““
return np.where(self.net_input(x) >= 0.0 1-1)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2492 2017-09-17 20:21 neuralnetwork\ganzhiqi.py
文件 837 2017-09-18 15:05 neuralnetwork\main.py
文件 786 2017-09-17 22:05 neuralnetwork\matplotlib.py
文件 1691 2017-09-18 14:58 neuralnetwork\matplotlib_listencolormap.py
文件 459 2017-09-17 20:33 neuralnetwork\pandas.py
文件 4700 2017-09-16 15:44 neuralnetwork\test.csv
文件 552 2017-09-18 13:36 neuralnetwork\use_ganzhiqi.py
文件 1994 2017-09-18 13:29 neuralnetwork\__pycache__\ganzhiqi.cpython-36.pyc
文件 1261 2017-09-18 15:01 neuralnetwork\__pycache__\matplotlib_listencolormap.cpython-36.pyc
目录 0 2017-09-18 15:01 neuralnetwork\__pycache__
目录 0 2017-09-18 15:18 neuralnetwork
----------- --------- ---------- ----- ----
14772 11
- 上一篇:IncaA2l文件读取
- 下一篇:岭回归 LASSO回归 python 实现
相关资源
- 岭回归 LASSO回归 python 实现
- IncaA2l文件读取
- python遗传算法 源代码
- PyQt5中异步刷新UI+Python中的多线程+p
- 一加云服务照片批量导出 Python爬虫
- 使用Python编写LOF算法
- python视频资料.zip
- Python基础项目配套代码
- Python调用QQ截图
- util_python
- label.png为16位转8位python代码
- 1.2.5的windows python-mysqlpip安装,MySQL_
- _sqlite3.cpython-38-x86_64-linux-gnu.rar
- python写的自动发送QQ邮件的脚本
- python 远程获取文件
- python从入门到精通视频全60集百度云链
- Python基础教程(全套21集)
- python抓取新浪微博数据
- 小甲鱼零基础入门学习Python全套源码
- SCU微服务自动填写
- 基于socket的python聊天
- python之des加密算法
- Python爬虫抓取Ebay页面
- python api chm
- Python 搜狗词库的批量
- 无人车路径规划算法matlab+python代码
- 粒子群优化BPNN的python实现代码.rar
- 基于Django的python信息管理系统,用于
- python
- 多层BP神经网络参数高自由度Python
评论
共有 条评论