Kaggle项目——Spaceship Titanic
做了下Kaggle的Spaceship Titanic项目,算是对CNN学习的一个总结,也是回归机器学习的一个响应(第三章的练习题提出可以做一做Kaggle的Titanic案例),具体代码如下:
# 定义网络模型
from torch import nn
import torch.nn.functional as Fclass mymodule(nn.Module):def __init__(self):super().__init__()self.fc1 = nn.Linear(20, 64)self.fcc = nn.Linear(64, 64)self.fc2 = nn.Linear(64, 32)self.fc3 = nn.Linear(32, 2)self.relu = nn.ReLU()self.drop = nn.Dropout(p=0.2)self.bn1 = nn.BatchNorm1d(64)self.bn2 = nn.BatchNorm1d(32)def forward(self, x):x = x.to(torch.float32) # 解决数据类型的问题x = self.relu(self.fc1(x))x = self.bn1(x)x = self.drop(x)x = self.relu(self.fcc(x))x = self.bn1(x)x = self.drop(x)x = self.relu(self.fc2(x))x = self.bn2(x)x = self.fc3(x)x = torch.sigmoid(x)return x'''
----------------------------------------------------------------------
'''# 设置随机数种子,保证结果可复现
seed = 548814
torch.manual_seed(seed) # 设置CPU
# torch.cuda.manual_seed(seed) # 设置GPU# 训练模型
from torch import optimmodel = mymodule() # 实例化模型
# 适应设备
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)# 选用Adam优化器,传入模型参数,设置学习率为0.002,正则化参数weight_decay=0.1
optimizer = optim.Adam(model.parameters(), lr=0.001, weight_decay=0.01)
criterion = nn.CrossEntropyLoss() # 选用交叉熵作为损失函数Loss
epoch = 70 # 设定迭代次数for epoch in range(epoch+1): # 开始迭代循环for x, y in train_dr: # 从dataloader中取x,ypred = model(x) # 正向传播loss = criterion(pred, y) # 计算损失函数optimizer.zero_grad() # 优化器的梯度清零loss.backward() # 反向传播optimizer.step() # 参数更新# 计算准确率with torch.no_grad(): # 在该模块下,所有计算得出的tensor的requires_grad都自动设置为False。y_pred = model(x_train_tensor) # 得到训练集的预测标签acc_train = (y_pred.argmax(dim=1) == y_train_tensor).float().mean().item() # 计算训练集的准确率y_pred = model(x_test_tensor) # 得到测试集的预测标签acc_test = (y_pred.argmax(dim=1) == y_test_tensor).float().mean().item() # 计算训练集的准确率print('epoch:', epoch, ' Accuracy for train:', acc_train, ' Accuracy for test:', acc_test)
以上是一次仅用全连接层的尝试,使用CNN方法的代码在之前已经给出(数据预处理过程也是),最终在Kaggle上Score: 0.80079,算是一次不错的尝试和开始吧。接下来继续努力!
Kaggle项目——Spaceship Titanic相关推荐
- 【kaggle】Spaceship Titanic - 预测哪些乘客被运送到另一个维度【CatBoost - 10%】
一.赛题 Spaceship Titanic - 预测哪些乘客被运送到另一个维度:https://www.kaggle.com/competitions/spaceship-titanic 结果: 二 ...
- Kaggle系列(一):Spaceship Titanic(太空飞船泰坦尼克)
开坑开坑Kaggle系列(通过kaggel练习机器学习与数据分析能力) 2022年3月9日,这是第一个版本的太空泰坦尼克任务 我的Github中发布了本任务包含的相应源码与思路分析讲解,欢迎来⭐. 本 ...
- Datawhale打卡活动 Kaggle Spaceship Titanic Day3
文章目录 Datawhale打卡活动 Kaggle Spaceship Titanic Day 3 验证集划分与树模型 步骤1:学习sklearn中的数据划分方法 K折交叉验证(KFold.Strat ...
- kaggle入门(二)——Spaceship Titanic
Spaceship Titanic | KagglePredict which passengers are transported to an alternate dimensionhttps:// ...
- Datawhale打卡活动 Kaggle Spaceship Titanic Day4
Datawhale打卡活动 Kaggle Spaceship Titanic 尝试了一个coggle科学的打卡活动(Coggle 30 Days of ML(22年10月)),记录一下学习过程! Da ...
- Kaggle Spaceship Titanic打卡活动Day1
Kaggle Spaceship Titanic打卡活动 尝试了一个coggle科学的打卡活动(Coggle 30 Days of ML(22年10月)),记录一下学习过程! Day 1 比赛的报名与 ...
- kaggle入门项目:Titanic存亡预测(三)数据可视化与统计分析
---恢复内容开始--- 原kaggle比赛地址:https://www.kaggle.com/c/titanic 原kernel地址:A Data Science Framework: To Ach ...
- 泰坦尼克号数据集_机器学习(入门)--Kaggle项目之泰坦尼克号
电影<泰坦尼克号>改编自一个真实故事.1912年4月15日,这艘号称"永不沉没"的泰坦尼克号在首航期间,撞上冰山后沉没,船上的2224名乘客和机组人员,其中只有772人 ...
- Spaceship Titanic——简单的预处理+LightGBM
Kaggle上的spaceship titanic比赛,做了一些简单的预处理,之后用LightGMB建模,在原作者的基础上稍微调了下参数,最终结果有了一点点提升;) 数据特征描述: Passenger ...
最新文章
- DOS文件转换成UNIX文件格式详解
- 什么是上采样和下采样
- 升级bios_ThinkPad如何升级BIOS?我来教你!
- dw_mysql】apache_怎么将dreamweaver与apache服务器连接
- 矩阵论期末手写总结笔记
- 解决df -h卡死问题
- 计算机“复制粘贴”之父去世
- 分布式系统面试题:分布式事务解决方案?
- CentOS下使用TUN/TAP虚拟网卡的基本教程
- iOS开发之SQLite的Object-C封装
- Python在线考试系统源代码
- 移动100兆光纤,白天速度快,到了晚上卡成狗,何解?
- 深蓝学院 浙江大学免费开源课程 !
- Android 中view的解释
- Ansible hosts文件写法
- 用python画爱心及代码演示
- 调用android的拍照或本地相册选取再实现相片上传服务器,Android调用系统相机、本地相册上传图片(头像上传(裁剪)、多张图片上传)...
- 量子计算机qled,量子点发光原理详解
- Rsync命令参数以及配置使用
- git问题:Please make sure you have the correct access rights and the repository exists.