机器学习-神经网络简单Demo

本文演示了如何使用神经网络对鸢尾花数据进行训练和分类。通过数据可视化,显示花瓣长度和花径长度能有效区分鸢尾花种类。接着,详细介绍了感知器模型和适应性线性神经元模型的实现过程,包括训练、预测和结果评估。实验表明,适应性线性神经元模型在增加学习次数后,分类效果更优。
摘要由CSDN通过智能技术生成

本文通过编写神经网络对鸢尾花数据进行训练和分类。通过搜集鸢尾花的数据,并将数据可视化,可以发现通过鸢尾花的花瓣长度和花径长度可以将鸢尾花的品种进行区分。

1.数据样本可视化处理

使用如下代码将数据可视化:

file = "~/Desktop/Iris.csv"
import pandas as pd
df = pd.read_csv(file, header=None)
df.head(10)

 

选取第0列和第2列,并在二维坐标系中做出点阵图。

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
y = df.iloc[0:100, 4].values
#print y.shape
y = np.where(y == 'Iris-setosa', -1, 1)
X = df.iloc[0:100, [0, 2]].values
#print X.shape
plt.scatter(X[:50, 0], X[:50, 1], color='red', marker='o', label='setosa')
plt.scatter(X[50:100, 0], X[50:100, 1], color='blue', marker='x', label='versicolor')
plt.xlabel('FlowerLength')
plt.ylabel('ScapeLength')
plt.legend(loc='upper left')
plt.show()

 

通过作图可以发现,根据花瓣长度和花径长度,可以明显的将鸢尾花的种类分为两类。接下来就通过编写神经网络对鸢尾花进行训练和预测。

2.编写感知器神经元模型进行训练和预测

首先编写感知器模型,因为数据量较小,所以就选择了单层神经网络,eta为学习的速率,n_iter为权重向量训练的次数,w_为权重向量。编写模型的训练函数fit。在fit中,先将权重向量初始化为0,然后进行n_iter次的训练迭代。在训练中,update = ß * (y - y'),权重向量就等于权重向量加上update乘以输入值,并将阈值设置为update。n_iter次迭代以后,权重向量就为训练好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值