目录

  • test.csv
  • train.csv
  • titanic.py

数据集

https://www.kaggle.com/c/titanic/data

titanic.py

import tensorflow as tf
import pandas as pdTRAIN_PATH = "train.csv"
TEST_PATH = "test.csv"
LEARNING_RATE = 0.01 # 0.01
EPOCH_NUM = 15 # 15
BATCH_SIZE = 100 # 100
LOGS_PATH = 'tensorboard_logs'
'''
PassengerId => 乘客ID
Pclass => 乘客等级(1/2/3等舱位)
Name => 乘客姓名
Sex => 性别
Age => 年龄
SibSp => 堂兄弟/妹个数
Parch => 父母与小孩个数
Ticket => 船票信息
Fare => 票价
Cabin => 客舱
Embarked => 登船港口
'''def preprocess_data(path, is_test=False):data = pd.read_csv(path, index_col='PassengerId')data.drop(['Name', 'Ticket', 'Cabin'], axis=1, inplace=True)if is_test:data = data.replace([None], [0])else:data = data[pd.notnull(data['Age'])]data = data[pd.notnull(data['Embarked'])]data.replace(["female", "male"], [0, 1], inplace=True)data.replace(["Q", "C", "S"], [0, 1, 2], inplace=True)if "Survived" in data:data = data[pd.notnull(data['Survived'])]data_norm = (data - data.mean()) / (data.max() - data.min())return data_normdef next_batch(df, i=None):""":param df: pandas dataframe:param i: batch index:return: (numpy array x, numpy array y)"""if i is None:start = 0end = df.shape[0]else:start = BATCH_SIZE * iend = BATCH_SIZE * (i + 1)result = df[start:end]if "Survived" in result:batch_ys = pd.get_dummies(result.pop('Survived').values).as_matrix()batch_xs = result.as_matrix()return batch_xs, batch_yselse:return result.as_matrix()def split_dataset(df, test_part=None):"""Split dataframe:param test_part: float from 0 to 1:param df: pandas dataframe:return: (pandas dataframe train, pandas dataframe test)"""length = df.shape[0]if test_part is None:test_part = 0.15test_part = int(length * test_part)test_dataset = df[0:test_part]training_dataset = df[test_part:]return training_dataset, test_datasetdataset = preprocess_data(TRAIN_PATH)training_dataset, test_narray = split_dataset(dataset)x = tf.placeholder(tf.float32, [None, 7], name='InputData')
y = tf.placeholder(tf.float32, [None, 2], name='TargetData')W = tf.Variable(tf.zeros([7, 2]), name='Weights')
b = tf.Variable(tf.zeros([2]), name='Bias')with tf.name_scope('Model'):  # scope 作用域pred = tf.nn.softmax(tf.matmul(x, W) + b)with tf.name_scope('Loss'):cost = tf.reduce_mean(-tf.reduce_sum(y * tf.log(pred + 1e-10), reduction_indices=1))with tf.name_scope('GDS'):optimizer = tf.train.GradientDescentOptimizer(LEARNING_RATE).minimize(cost)with tf.name_scope('Accuracy'):acc = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))acc = tf.reduce_mean(tf.cast(acc, tf.float32))init = tf.global_variables_initializer()tf.summary.scalar("loss", cost)
tf.summary.scalar("accuracy", acc)
merged_summary = tf.summary.merge_all()with tf.Session() as sess:sess.run(init)log_writer = tf.summary.FileWriter(LOGS_PATH, graph=tf.get_default_graph())training_dataset_size = training_dataset.shape[0]for epoch in range(EPOCH_NUM):avg_cost = 0.total_batch = int(training_dataset_size / BATCH_SIZE)for i in range(total_batch):batch_xs, batch_ys = next_batch(training_dataset, i)_, c, summary = sess.run([optimizer, cost, merged_summary], feed_dict={x: batch_xs, y: batch_ys})log_writer.add_summary(summary, epoch * total_batch + i)avg_cost += c / total_batchprint("Epoch:", '%d' % (epoch + 1), "cost=", "{0}".format(avg_cost))test_x, test_y = next_batch(test_narray)print("Accuracy:", acc.eval({x: test_x, y: test_y}))test_df = preprocess_data(TEST_PATH, is_test=True)indexes = test_df.index.valuestest_narray = next_batch(test_df)feed_dict = {x: test_narray}predict_proba = pred.eval(feed_dict)predictions = tf.argmax(predict_proba, dimension=1).eval()with open("gender_submission.csv", "w") as f:f.write("PassengerId,Survived\n")for index, prediction in zip(indexes, predictions):f.write("{0},{1}\n".format(index, prediction))

准确率

Accuracy: 0.8113208

转载

原文作者 : no one

生存预测 : kaggle titanic 泰坦尼克号 逻辑回归(Logistic回归) tensorflow版相关推荐

  1. Softmax回归——logistic回归模型在多分类问题上的推广

    Softmax回归 Contents [hide] 1 简介 2 代价函数 3 Softmax回归模型参数化的特点 4 权重衰减 5 Softmax回归与Logistic 回归的关系 6 Softma ...

  2. python数据挖掘项目实战 预测_Python机器学习/数据挖掘项目实战 泰坦尼克号Titanic生存预测 Kaggle入门比赛...

    # Titanic : Machine Learning from DisasterQuestion要求你建立一个预测模型来回答这个问题:"什么样的人更有可能生存?"使用乘客数据 ...

  3. python泰坦尼克号生存预测论文_泰坦尼克号生存率预测(基于Python)

    背景:泰坦尼克号(RMS Titanic)是英国白星航运公司下辖的一艘奥林匹克级邮轮,于1909年3月31日在爱尔兰贝尔法斯特港的哈兰德与沃尔夫造船厂动工建造.她是当时世界上体积最庞大.内部设施最豪华 ...

  4. R语言逻辑回归Logistic回归分析预测股票涨跌

    最近我们被客户要求撰写关于逻辑回归的研究报告,包括一些图形和统计输出. 视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠心病风 ...

  5. Dataset:titanic泰坦尼克号数据集/泰坦尼克数据集(是否获救二分类预测)的简介、下载、案例应用之详细攻略

    Dataset:titanic泰坦尼克号数据集/泰坦尼克数据集(是否获救二分类预测)的简介.下载.案例应用之详细攻略 目录 titanic(泰坦尼克号)数据集的简介 1.titanic数据集各字段描述 ...

  6. 札记_ML——《统计学习方法》逻辑回归logistic regression)

    统计学习方法:五. 逻辑回归logistic regression 逻辑回归logistic regression Logistic的起源 1).概念logistic回归又称logistic回归分析, ...

  7. Python3《机器学习实战》学习笔记(七):Logistic回归实战篇之预测病马死亡率

    转载请注明作者和出处: http://blog.csdn.net/c406495762 机器学习知乎专栏:https://zhuanlan.zhihu.com/ml-jack CSDN博客专栏:htt ...

  8. 机器学习之Logistic回归(逻辑蒂斯回归)

    Logistic回归又称Logistic回归分析,主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率,等等. 应用: 一.寻找危险因素,正如上面所说的寻找 ...

  9. Logistic回归示例:从疝气病预测病马的死亡率

    目录 准备数据:处理数据中的缺失值 测试算法:用Logistic回归进行分类 疝气病是描述马胃肠痛的术语.然而这种病并不一定源自马的肠胃问题,其他问题也可能引发马疝病. 此外,除了部分指标主观和难以测 ...

最新文章

  1. 软件需求说明书文档格式
  2. Notepad++ 大小写转换
  3. 2015第36周日每天进步1%
  4. github地址持续收集
  5. .net core 多平台开发体验
  6. 《线性代数》同济六版 总结
  7. 计算机网络自顶向下方法 第六章 复习题答案
  8. linux device or,Linux rm -rf 之rm: cannot remove `linux': Device or resource busy
  9. 服务器邮件删除了怎么恢复,Exchange邮件误删除不用急 DPM轻松恢复
  10. 三星服务器锁微信,三星手机微信支付设置指纹锁步骤
  11. eureka多台注册中心_spring cloud eureka集群,注册中心再添加一台服务器
  12. 计算机专业自主招生有哪些学校,自主招生的学校类型有哪些
  13. 金陵科技学院计算机组成考试,2017-2017年度金陵科技学院材料期末考试整理.doc...
  14. 在线绘图网站文图使用教程
  15. ARP与RARP协议详解 (三)
  16. self_drive car_学习笔记--第8课:定位算法
  17. word中插入图表改变数据系列产生在行或列
  18. MS08067安全实验室官网被黑了!!!
  19. 如何把editplus设置成中文
  20. 走进绚烂多彩的属性动画-Property Animation(上篇)

热门文章

  1. 每日简报 5月16日简报新鲜事 每天一分钟 了解新鲜事
  2. nova8se鸿蒙,挖东西:华为nova8SE标准版和高配版哪个好?解析有区别没有?主要的优势在哪里?...
  3. 网上发现的一个 《Flashflex大全》
  4. 华硕X550LD笔记本安装黑苹果
  5. Quartz任务调度器详解
  6. NTKO OFFICE文档控件
  7. 鸿蒙系统升级到第几批了,鸿蒙系统第四批升级名单有哪些 鸿蒙系统第四批升级机型介绍...
  8. KUBUNTU 10.04 的安装与配置详解
  9. 沃尔沃升级刷藏功能取消限速180km解除行车播放视频关闭自动启停系统
  10. 触摸按键PCB设计要点