多层神经网络应用——iris分类

利用多层神经网络对鸢尾花进行分类。鸢尾花数据集(iris)一共有150个数据,这些数据分为3类(分别为:setosa,versicolor,virginica),每类50个数据,前五十个样本点属于类别1,中间50个数据是类别2,末尾50个数据是类别3。每个数据包含4个属性:萼片(sepal)长度、萼片宽度、花瓣(petal)长度、花瓣宽度。

hidden_layer_sizes = (97,98)表示两层隐含层,第一层97个神经元,第二层98个神经元。

首先加载数据集:

from matplotlib.colors import ListedColormap
from sklearn import neighbors, datasets
import numpy as np
from matplotlib import  pyplot as plt
from sklearn.neural_network import MLPClassifier

## 加载数据集
np.random.seed(0)
iris=datasets.load_iris() # 使用 scikit-learn  自带的 iris 数据集
X=iris.data[:,0:2] # 使用前两个特征,方便绘图
Y=iris.target # 标记值
data=np.hstack((X,Y.reshape(Y.size,1)))
np.random.shuffle(data) # 混洗数据。因为默认的iris 数据集:前50个数据是类别0,中间50个数据是类别1,末尾50个数据是类别2.混洗将打乱这个顺序
X=data[:,:-1]
Y=data[:,-1]
train_x=X[:-30]
test_x=X[-30:] # 最后30个样本作为测试集
train_y=Y[:-30]
test_y=Y[-30:]

X=iris.data[:,0:2] 表示使用前两个特征(sepal length和sepal width),因为两个特征方便在二维图形上表现出来,横轴为:sepal length,纵轴为:sepal width。对数据进行混洗,最后取出最后的30个数据作为测试集。

 

def plot_classifier_predict_meshgrid(ax,clf,x_min,x_max,y_min,y_max):
      ''' 绘制 MLPClassifier 的分类结果 :param ax:  Axes 实例,用于绘图:param clf: MLPClassifier 实例
    :param x_min: 第一维特征的最小值:param x_max: 第一维特征的最大值:param y_min: 第二维特征的最小值
    :param y_max: 第二维特征的最大值:return: None  '''
      plot_step = 0.02 # 步长
      xx, yy = np.meshgrid(
  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值