鸢尾花等表格数据简单分类器(模型可以替换)

Keras 2.2.4

Keras-Applications 1.0.6

Keras-Preprocessing 1.0.5

tensorflow          1.11.0

numpy               1.15.2

pandas              0.23.4

scikit-learn        0.20.0

测试成功

 1 # -*- coding: utf-8 -*-
 2 import numpy
 3 import pandas
 4 from keras.layers.core import Dense, Dropout, Activation
 5 from keras.models import Sequential
 6 from keras.utils import np_utils
 7 from keras.utils import plot_model
 8 from sklearn import utils
 9 from sklearn.model_selection import StratifiedShuffleSplit
10 from sklearn.preprocessing import LabelEncoder
11
12
13 def load_data():
14     ‘‘‘
15     获取数据
16     :return x_train, y_train, x_test, y_test, encoder:
17     ‘‘‘
18     # 载入数据
19     data_frame = pandas.read_csv("iris.csv", header=None)
20     data_set = data_frame.values
21     # 取所有行,从第0列到第4列(不包含第4列)
22     x_data = data_set[:, 0:4].astype(float)
23     # 取所有行,第4列
24     y_data = data_set[:, 4]
25     # 标签编码
26     encoder = LabelEncoder()
27     # 将字符串编译成0,1,2,3分类
28     # encoder.classes_以npy可以保存加载编码规则(np.save(‘encoder.npy‘,encoder.classes_),encoder.classes_=np.load(‘encoder.npy‘))
29     encoded_transform_y = encoder.fit_transform(y_data)
30     # 编译好的0,1,2,3 One_Hot
31     y_data = np_utils.to_categorical(encoded_transform_y)
32     # 打乱数据集
33     x_data, y_data = utils.shuffle(x_data, y_data)
34     # 切分数据集
35     train_idx, test_idx = next(iter(
36         StratifiedShuffleSplit(n_splits=1, test_size=0.2,
37                                random_state=0).split(x_data, y_data)))
38     x_train = x_data[train_idx]
39     y_train = y_data[train_idx]
40     x_test = x_data[test_idx]
41     y_test = y_data[test_idx]
42     return x_train, y_train, x_test, y_test, encoder
43
44
45 def compile_model():
46     # 模型
47     _model = Sequential()
48     _model.add(Dense(10, input_shape=(4,)))
49     _model.add(Activation(‘tanh‘))
50     _model.add(Dropout(0.2))
51     _model.add(Dense(3))
52     _model.add(Activation(‘softmax‘))
53     _model.compile(
54         loss="categorical_crossentropy",
55         optimizer=‘adam‘,
56         metrics=[‘accuracy‘])
57     # 生成模型图片
58     plot_model(_model, to_file=‘model.png‘, show_shapes=‘True‘)
59     return _model
60
61
62 def train_model(_model, _x_train, _y_train, _x_test, _y_test):
63     # 训练
64     history = _model.fit(_x_train, _y_train, epochs=100, batch_size=12,
65                          verbose=1, validation_data=[_x_test, _y_test])
66     # 测试训练集
67     score = _model.evaluate(_x_test, _y_test, verbose=1)
68     print(‘Test score:‘, score[0])
69     print(‘Test accuracy:‘, score[1])
70
71
72 def test(_model, _encoder, _x_test):
73     # 校验,返回标签
74     result = _model.predict(_x_test)
75     result = numpy.argmax(result, axis=1)
76     result = _encoder.inverse_transform(result)
77     print(result)
78
79
80 if __name__ == ‘__main__‘:
81     x_train, y_train, x_test, y_test, encoder = load_data()
82     model = compile_model()
83     train_model(model, x_train, y_train, x_test, y_test)
84     test(model, encoder, x_test)

原文地址:https://www.cnblogs.com/yzpopulation/p/9742742.html

时间: 2024-08-07 01:40:57

鸢尾花等表格数据简单分类器(模型可以替换)的相关文章

分类器模型评价指标

Spark mllib 自带了许多机器学习算法,它能够用来进行模型的训练和预测.当使用这些算法来构建模型的时候,我们需要一些指标来评估这些模型的性能,这取决于应用和和其要求的性能.Spark mllib 也提供一套指标用来评估这些机器学习模型. 具体的机器学习算法归入更广泛类型的机器学习应用,例如:分类,回归,聚类等等,每一种类型都很好的建立了性能评估指标.本节主要分享分类器模型评价指标. ROC曲线 ROC曲线指受试者工作特征曲线 / 接收器操作特性曲线(receiver operating

JSON数据转化成模型

JSON数据转化成模型 // 1.创建url NSURL *url = kSUNUrl(@"video"); // 2.创建request NSURLRequest *request = [NSURLRequest requestWithURL:url]; // 3.发送请求数据 NSOperationQueue *queue = [NSOperationQueue mainQueue]; [NSURLConnection sendAsynchronousRequest:request

Easy-ui Datagrid表格数据的编辑与提交

前言 jQuery EasyUI是一组基于jQuery的UI 插件集合体,而jQuery EasyUI可以打造出功能更加丰富且美观的UI界面.开发者不需要了解复杂的javascript和css样式,只需要了解html标签. 一.    easy-ui基本知识 1.            easy-ui引用js顺序详解 引用Jquery的js文件: <script src="jquery-easyui-1.3.4/jquery-1.8.0.min.js" type="te

jetty+bootstrap Carousel+springMVC+mybatis实现表格数据的轮播

index.jsp <%@ page language="java" pageEncoding="UTF-8"%> <%@include file="/taglibs.jsp"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&quo

ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2

运行效果: 此文介绍了根据操作左侧菜单在右面板展示相应内容. 一.主页 先看一下跳转主页的方式:由在webapp根目录下的index.jsp跳转至demo的index.jsp 下面是demo的index.jsp的代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% response.setHeade

Unity —— protobuf 导excel表格数据

前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数据的导出,还能直接用于网络通信协议的定制. 一.protobuf简介: protobuf是由google公司发布的一个开源的项目,是一款方便而又通用的数据传输协议.所以我们在Unity中也可以借助protobuf来进行数据存储和网络协议两方面的开发,这里先说说数据存储部分的操作,也就是: 将.xls

WORD表格数据运算技巧

我们经常会用WORD制作表格,有时表内的数据要运算的,WORD表格数据运算能力无法与EXCEL相比.但常见的乘除加减.相邻数据累加,将金额数字自动转成大写,WORD都能在表格内自动完成.下面以一个简单的例子抛砖引玉: ?     一.图1是进货合同的一张表,表中红色数字都是表内数据运算的结果,公式如图2所示. 图1 WORD表格数据运算案例 图2 WORD表格公式及显示格式 二.WORD表格公式案例分析 1.表中的单价是“机身”与“包鼠”之和,公式可以是{=SUM(LEFT)}. 操作方法:先将

写了一个Java的简单缓存模型

缓存操作接口 /** * 缓存操作接口 * * @author xiudong * * @param <T> */ public interface Cache<T> { /** * 刷新缓存数据 * * @param key 缓存key * @param target 新数据 */ void refresh(String key, T target); /** * 获取缓存 * * @param key 缓存key * @return 缓存数据 */ T getCache(Str

ASP.NET MVC学习三-数据传递之模型绑定

一:简单的模型绑定 在ASP.NET MVC中是模型绑定来解析客户端传过来的数据的,简单的来说就更近一步来封装了获得数据的手段,让用户更方便的来获取数据了 我们来简单做一个例子 public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(string username) { ViewData["username"] = username; return View(); } 这里我