0
点赞
收藏
分享

微信扫一扫

3.3 多层感知器的代码实现

彪悍的鼹鼠 2022-04-01 阅读 68
深度学习

基于JupyterNoteBook(Annaconda3)搭建的tensorflow开发环境。

所使用到的数据集见我的博客上传的资源中,欢迎大家下载。

import pandas as pd
import keras
import numpy as np
from keras import layers


# 1)Pandas模块读取数据
data = pd.read_csv('./dataset/tt/train.csv')


# 2)数据预处理
y = data.Survived
x = data[['Pclass', 'Name', 'Sex', 'Age', 'SibSp','Parch', 'Fare','Embarked']]

# 独热编码
#[1,0,0]  原始数据进行数值化
x.loc[:,'Embarked_S'] = (x.Embarked =='S').astype('int')
x.loc[:,'Embarked_C'] = (x.Embarked == 'C').astype('int')
x.loc[:,'Embarked_Q'] = (x.Embarked == 'Q').astype('int')
del x['Embarked']

# 对性别的字符形式改为int形式
x.loc[:,'Sex'] = (x.Sex == 'male').astype('int')

# 对存在NAN的年龄设置为整体的平均年龄
x['Age'] = x.Age.fillna(Age.mean())

# Pclass 是 序列特征   === 独热编码化 === 最好的
x['p1'] = (x.Pclass == 1).astype('int')
x['p2'] = (x.Pclass == 2).astype('int')
x['p3'] = (x.Pclass == 3).astype('int') 
del x['Pclass']

# 查看形状
x.shape, y.shape


# 3)建立模型
model = keras.Sequential()
model.add(layers.Dense(32, input_dim=12, activation='relu'))
model.add(layers.Dense(32, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid')) 
# 因为最后我们需要输出一个概率值,所以加sigmoid激活函数

model.summary() #查看模型


# 4)编译模型
model.compile(optimizer='adam',
             loss='binary_crossentropy',
             metrics=['acc']
             )

# 5)训练模型
history = model.fit(x,y, epochs=300)




举报

相关推荐

0 条评论