深度学习:python教程 实践(一)
2018-01-24 17:01
190 查看
请看第七章
https://cnbeining.github.io/deep-learning-with-python-cn/3-multi-layer-perceptrons/ch9-use-keras-models-with-scikit-learn-for-general-machine-learning.html
目的:训练个模型出来
由于文中的资源和数据并没有交代清楚
所以我自己搞了一下下
从原文7.3的一段代码可以看出
之后所需的是一个nparrray()的二维数组
仅做学习用,自己构造了测试数据
以下为构造测试数据的方法
其实就是两个循环构造一个二位数组
文中选择的案例是皮马印第安人糖尿病数据集
有8个属性,太多了,砍成两个属性就好
于是生成的二维数组就可以如下生成
一千行二维数组
怀孕次数在0-10之间,是否糖尿病用1,0表示
因为仅测试,所以数据集中的含义并无所谓
以上是从原文推导出来的数据格式,有兴趣的也可以自己试试
ok,让我们接着往下做
inputLayer->hiddenLayer->outputLayer
此处的概念不做详细解释,仅注意输入层和输出层,
7.5 7.6 7.7代码写不出来了,没关系,直接拉到网页最底就可以看到通篇代码
注意以下几点:
X = test_data_np[:, 0:1]
Y = test_data_np[:, 1]
input_dim=8
此处因为简化,所以改成了1
相应的调整Dense里的参数,12->4, 8->2
nb_epoch=25 # 训练轮数
batch_size=2 # 每次数据2个,猜测就是用两行
其实生成了1000行
1000/25 = 40
就是训练25次,每次40行,最后把数据都用上了。
不过
无所谓!
用pycharm运行一下程序,即可看到输出
文中的一些警告其实是参数名字改掉了,如果强迫症的可以把参数名字按要求修改(比如说我就有点强迫症)
最后实践成果
附上输出结果
红框部分会出现25次,最后有个acc:50.15%
附上所有代码
https://cnbeining.github.io/deep-learning-with-python-cn/3-multi-layer-perceptrons/ch9-use-keras-models-with-scikit-learn-for-general-machine-learning.html
目的:训练个模型出来
由于文中的资源和数据并没有交代清楚
所以我自己搞了一下下
从原文7.3的一段代码可以看出
# load pima indians dataset dataset = numpy.loadtxt("pima-indians-diabetes.csv", delimiter=",") # split into input (X) and output (Y) variables X = dataset[:,0:8] Y = dataset[:,8]
之后所需的是一个nparrray()的二维数组
仅做学习用,自己构造了测试数据
以下为构造测试数据的方法
def get_range(range_one, range_two): list_one = [] for x in range(range_one): list_two = [] for y in range(range_two): if y == 0: value = random.randint(0, 10) else: value = random.randint(0, 1) list_two.append(value) list_one.append(list_two) return np.array(list_one)
其实就是两个循环构造一个二位数组
文中选择的案例是皮马印第安人糖尿病数据集
有8个属性,太多了,砍成两个属性就好
于是生成的二维数组就可以如下生成
# 对应含义
name_list = ["怀孕次数", "是否糖尿病"]
# 生成数据集
test_data_np = get_range(1000, 2)
一千行二维数组
怀孕次数在0-10之间,是否糖尿病用1,0表示
因为仅测试,所以数据集中的含义并无所谓
以上是从原文推导出来的数据格式,有兴趣的也可以自己试试
ok,让我们接着往下做
inputLayer->hiddenLayer->outputLayer
此处的概念不做详细解释,仅注意输入层和输出层,
7.5 7.6 7.7代码写不出来了,没关系,直接拉到网页最底就可以看到通篇代码
注意以下几点:
X = test_data_np[:, 0:1]
Y = test_data_np[:, 1]
input_dim=8
此处因为简化,所以改成了1
相应的调整Dense里的参数,12->4, 8->2
nb_epoch=25 # 训练轮数
batch_size=2 # 每次数据2个,猜测就是用两行
其实生成了1000行
1000/25 = 40
就是训练25次,每次40行,最后把数据都用上了。
不过
无所谓!
用pycharm运行一下程序,即可看到输出
文中的一些警告其实是参数名字改掉了,如果强迫症的可以把参数名字按要求修改(比如说我就有点强迫症)
最后实践成果
附上输出结果
红框部分会出现25次,最后有个acc:50.15%
附上所有代码
# /usr/bin/evn python
# -*- coding: utf-8 -*-
'''
author: liuweixing@2276959997@qq.com
'''
"""基础模块"""
"""框架模块"""
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
# import pandas as pd
"""工具模块"""
import random
"""实现"""
"""
a = [[0,1,2,3],[0,1,2,3],[0,1,2,3]]
a_np = np.array(
a747
a)
print(a_np[:,0:1])
"""
name_list = ["怀孕次数", "是否糖尿病"]
def get_range(range_one, range_two): list_one = [] for x in range(range_one): list_two = [] for y in range(range_two): if y == 0: value = random.randint(0, 10) else: value = random.randint(0, 1) list_two.append(value) list_one.append(list_two) return np.array(list_one)
test_data_np = get_range(1000, 2)
X = test_data_np[:, 0:1]
Y = test_data_np[:, 1]
print(test_data_np)
model = Sequential()
model.add(Dense(12, input_dim=1, kernel_initializer='uniform', activation='relu'))
model.add(Dense(8, kernel_initializer='uniform', activation='relu'))
model.add(Dense(1, kernel_initializer='uniform', activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X, Y, epochs=25, batch_size=40)
scores = model.evaluate(X, Y)
print("%s: %.2f%%" % (model.metrics_names[1], scores[1] * 100))
相关文章推荐
- 深度学习:python教程 实践(三)10章
- 深度学习:python教程 实践(二)8和9章节
- 深度学习:python教程 实践(零)
- 【推荐】Keras教程:Python深度学习超级入门指南
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
- 【TensorFlow深度学习框架教程二】Python一小时入门导学
- 给深度学习入门者的Python快速教程 - Numpy和Matplotlib篇
- 机器学习&深度学习实践(Python版)----Multivariate Linear Regression(多元线性回归)
- 给深度学习入门者的Python快速教程 - 基础篇
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
- 最新整理python神经网络深度学习算法全套视频教程
- 【备忘】冲击年薪50万之从数学基础python机器学习到深度学习算法学习路线视频教程 共321G
- 【备忘】冲击年薪50万之从数学基础python机器学习到深度学习算法学习路线视频教程
- Python中Keras深度学习库的回归教程
- 机器学习&深度学习实践(python版)系列----Linear Regression(线性回归)
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇