1. 我这个的损失最后是500多,正确率百分之62,总的来说不值得借鉴,这是我入门pytorch后写的第一个象征性的分类器,后面更深入学习后再来优化。我的这个倒是还是能走完全流程的,对于只想试试水,学个流程的可以参考。
  2. 我参考的博主链接
  3. 上代码:总的来说可以分为,数据准备,数据读入与处理,构建模型,构建损失函数与优化器,训练
MAP_Embarkded={'C':0,'Q':1,'S':2}
MAP_Sex={"male":1,"female":0}
# OLD_INDEX=['Pclass','Sex'.'Age','SibSp','Parch','Fare','Embarked']
def uniformization(x,m):if m>0:x=x/mreturn x
# data
class Dataset_my(Dataset):def __init__(self):passdef read_data(self):data_train=pd.read_csv('D:/01_MyLab/DeepLearning/train.csv')data_test=pd.read_csv('D:/01_MyLab/DeepLearning/test.csv')# data_train.info()# 显示数据的信息,以判断数据缺失情况      data_train['Age']=data_train.Age.fillna(data_train['Age'].mean())# data_train.info()# 显示数据的信息,以判断数据缺失情况data_test.Fare=data_test.Fare.fillna(14.4)data_test.Age=data_test.Age.fillna(data_test.Age.mean())train_label=data_train[['Survived']]test_label=pd.read_csv('D:/01_MyLab/DeepLearning/gender_submission.csv')test_label=test_label[['Survived']]self.data_train=data_train[['Pclass','Sex','Age','SibSp','Parch','Fare','Embarked']]self.data_test=data_test[['Pclass','Sex','Age','SibSp','Parch','Fare','Embarked']]       self.data_train=pd.DataFrame(self.data_train,columns=['Pclass','Sex','Age','SibSp','Parch','Fare','Embarked'])self.data_test=pd.DataFrame(self.data_test,columns=['Pclass','Sex','Age','SibSp','Parch','Fare','Embarked'])self.train_label=pd.DataFrame(train_label)self.test_label=pd.DataFrame(test_label)#把数据转为dataframe类型self.manage_data()for col in self.data_train:# m=self.data_train[col].max()self.data_train[[col]]=self.data_train[[col]].apply(lambda x:(x-np.min(x)/(np.max(x)-np.min(x))))# if m>0:#     self.data_train[col]/=m# self.data_train.apply(lambda x:(x-np.min(x)/(np.max(x)-np.min(x))))return self.data_train,self.train_label,self.data_test,self.test_labeldef manage_data(self):# 处理male,embarked两个非数据字符self.data_train['Sex']=self.data_train['Sex'].map(MAP_Sex)self.data_train.Embarked=self.data_train.Embarked.map(MAP_Embarkded)self.data_test['Sex']=self.data_train['Sex'].map(MAP_Sex)self.data_test.Embarked=self.data_train.Embarked.map(MAP_Embarkded)return 0def __getitem__(self,index):return self.data_train[index],self.train_label[index]def __len__(self):return len(self.data_train)# data_loader=DataLoader(dataset=dataset,shuffle=True,batch_size=50,num_workers=4)# 写模型
class Model(torch.nn.Module):def __init__(self):super(Model,self).__init__()self.linear1=torch.nn.Linear(7,4)self.linear2=torch.nn.Linear(4,4)self.linear3=torch.nn.Linear(4,1)self.sigmoid=torch.nn.Sigmoid()def forward(self,x):x=self.sigmoid(self.linear1(x))x=self.sigmoid(self.linear2(x))x=self.sigmoid(self.linear3(x))return x#     self.fc=torch.nn.Sequential(#         torch.nn.Linear(10,7),#         torch.nn.Sigmoid(),#         torch.nn.Linear(7,7),#         torch.nn.Sigmoid(),#         torch.nn.Linear(7,1),#     ) # def forward(self,inputs):#     return self.fc(inputs)
my_model=Model()
# 定义损失函数 二分类问题的损失函数
criterion=torch.nn.BCELoss(reduction='sum')
optimizer=torch.optim.SGD(my_model.parameters(),lr=0.0001)# 获取数据
dataset=Dataset_my()
train_data,label1,test_data,label2=dataset.read_data()
train_data=np.array(train_data)
test_data=np.array(test_data)
label1=np.array(label1)
label2=np.array(label2)# train_data=train_data.astype(float)
# test_data=test_data.astype(float)
# label1=label1.astype(float)
# label2=label2.astype(float)train_data=torch.tensor(train_data,dtype=torch.float)
test_data=torch.tensor(test_data,dtype=torch.float)
label1=torch.tensor(label1,dtype=torch.float)
label2=torch.tensor(label2,dtype=torch.float)
# 训练
# if __name__=='__main__':
num=len(train_data)
R=0
loss=0
for epoch in range(5000):y_pred=my_model(train_data)loss=criterion(y_pred,label1)for i in range(len(y_pred)):y1=y_pred[i][0].type(torch.long)l1=label1[i][0].type(torch.long)d=abs(y1-l1)# print(d.item())if d<0.5:R+=1   # print("Correction rate: ",(R/num)*100)R=0optimizer.zero_grad()loss.backward()optimizer.step()
print(loss)

注意事项

  • 文件读入 pandas的read_csv函数
  • pandas 在读取csv文件后,可以利用file.[“Property”]来直接获得某一列的属性值
  • pandas在读取csv文件后,也会自动将列属性作为读入的文件的一个属性,file.Property直接进行调用和操作
  • 利用fillna()函数可以将缺失的数据补齐,补齐方式有常数,均值,中位数等
  • 如果想要对获取的内容进行操作,需要加一步,将读入的内容变为DataFrame()类型
train_label=pd.DataFrame(train)label)
train)label[3]
  • 利用map()函数将字符类型的数据映射为数值类型
MAP_SEX={"male":1,"female":0}
data_train['Sex']=data_train['Sex'].map(MAP_SEX)
  • !!! pandas里直接返回的DataFrame类型,在进行训练之前需要进行转换。首先转换为numpy.array()类型,然后再转换为torch.Tensor类型,并且必须设置tensor的dtype属性
train_data=np.array(train_data)
train_data=torch.tensor(train_data.dtype=torch.float)

PyTorch入门: Kaggle 泰坦尼克幸存者预测相关推荐

  1. Kaggle实战:泰坦尼克幸存者预测 - 上

    (文章同步更新于个人博客@dai98.github.io) 源代码: Github Kaggle 泰坦尼克幸存者预测是Kaggle上数据竞赛的入门级别的比赛,我曾经在一年前作为作业参加过这个比赛,我想 ...

  2. kaggle竞赛:泰坦尼克幸存者预测

    kaggle竞赛:泰坦尼克幸存者预测--(一) import pandas as pd import numpy as np import matplotlib.pyplot as plt impor ...

  3. kaggle入门之泰坦尼克幸存预测

    kaggle入门之泰坦尼克幸存预测 # 数据集什么的就不介绍了,官网上都有 主要的工作步骤 1.提出和定义问题 2.获取训练和测试数据 3.获取,准备和清洗数据 4.分析,识别,探究数据 5.建模,预 ...

  4. 数据分析入门 | kaggle泰坦尼克任务

    这个章节主要是参加DataWhale的数据分析项目过程中的记录,希望能对感兴趣的同学有一些帮助. 目录索引 一.章节导航 二.其他集合 一.章节导航 数据分析入门 | kaggle泰坦尼克任务(一)- ...

  5. kaggle 泰坦尼克 高分 预测

    kaggle 泰坦尼克 高分 预测 目录 kaggle 泰坦尼克 高分 预测 1.前言 2.包及数据导入 3.数据的初步认识 4.数据关系的可视化 5.数据清洗与缺失值处理 6.数据的统计分析 7.超 ...

  6. Kaggle实战:泰坦尼克幸存者预测 -下

    (文章同步更新于个人博客@dai98.github.io) 源代码:Github 上一篇文章介绍了如何使用深度学习来预测泰坦尼克号幸存者,这一部分使用多分类器投票来做.由于数据预处理部分比较相似,重复 ...

  7. kaggle房价预测特征意思_机器学习-kaggle泰坦尼克生存预测(一)-数据清洗与特征构建...

    1.背景: 1.1 关于kaggle: 谷歌旗下的 Kaggle 是一个数据建模和数据分析竞赛平台.该平台是当下最流行的数据科研赛事平台,其组织的赛事受到全球数据科学爱好者追捧. 如果学生能够在该平台 ...

  8. MOOC网深度学习应用开发1——Tensorflow基础、多元线性回归:波士顿房价预测问题Tensorflow实战、MNIST手写数字识别:分类应用入门、泰坦尼克生存预测

    Tensorflow基础 tensor基础 当数据类型不同时,程序做相加等运算会报错,可以通过隐式转换的方式避免此类报错. 单变量线性回归 监督式机器学习的基本术语 线性回归的Tensorflow实战 ...

  9. 决策树实例-泰坦尼克幸存者预测

最新文章

  1. 如何网络推广教大家怎样通过提高用户粘性来助力排名提升?
  2. jQuery之防止冒泡事件
  3. 31. 提取text.txt和text2.txt的文件内容,进行文本等号以后求和
  4. 使用jOOQ的MockDataProvider破解简单的JDBC ResultSet缓存
  5. python岗位 上海_上海黑马Python24期,平均薪资10150元,16个工作日就业率70.73%
  6. 开源网店系统_做仿货国外网店系统被谷歌禁掉该怎么办?
  7. linux yum 目录在哪,急问怎么知道yum从哪个地址下载的文件呢?
  8. Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
  9. 【计算机组成与设计】3.4计算机CPU除法运算
  10. IEEE 会议模板介绍
  11. Microsoft visual FoxPro使用教程--添加csv文件数据到dbf文件中
  12. 大数据分析-实验八 鸢尾花数据集分类
  13. python如何写简历_用Python写简历
  14. 有赞搜索系统的技术内幕
  15. 一次分布式架构cms系统页面静态化模块开发经历
  16. Yobili优碧俪打造轻奢营养食品,以品质破圈
  17. 齐岳多吡啶萘酰亚胺荧光树形分子(PDPN),三萘嵌二苯二酰亚胺类近红外有机光功能分子定制,4-氨基-1, 8-萘酰亚胺类化合物
  18. android studio 打包cocos creator项目
  19. 【iShout】智能家居,我们真的想好怎么做了吗?
  20. 专业的微信商城系统-WeMall

热门文章

  1. 外国语言学c刊集刊联系方式,CSSCI(2017-2018)收录集刊目录 (共189 种).PDF
  2. 生产物流系统建模与仿真-基于WITNESS建模视频教程
  3. Java 输出单双引号问题
  4. PIL批量更改图片像素大小,python
  5. React Native学习-第一篇
  6. 物联网专业属于计算机的哪个门类,物联网工程专业属于什么门类
  7. 河南省历年高考人数(2004-2021)
  8. 【视频教程】cocos2d-x公开课(无脑码农龙灵修第二季)
  9. 刷新你三观!这些堪比软件的神网站你知多少
  10. kettle查询mysql获取uuid_使用kettle来根据时间戳或者批次号来批量导入数据,达到增量的效果。...