初入kaggle (Tatanic学习历程)

初步进入kaggle的大门,首先是最基础的Tatanic的学习

第一次尝试

import numpy as np
import pandas as pd
# =============================================================================
# 读入数据
# =============================================================================
train=pd.read_csv("train.csv")
test=pd.read_csv("test.csv")
# =============================================================================
# 剔除无关数据
# =============================================================================
traingai=train.drop(['PassengerId','Name','Ticket'],axis=1,inplace=False)   #删去我认为无关的列
testgai=test.drop(['PassengerId','Name','Ticket'],axis=1,inplace=False)
# =============================================================================
# Sex的处理:male设为1 female设为0
# =============================================================================
traingai.loc[traingai.Sex=='male','Sex']=1          #之前采用traingai。Sex。。。。会产生warning
traingai.loc[traingai.Sex=='female','Sex']=0
testgai.loc[testgai.Sex=='male','Sex']=1          
testgai.loc[testgai.Sex=='female','Sex']=0
# =============================================================================
# Age的处理:第一次缺失值尝试,将缺失的age暂时定为所有已知值的平均数
# =============================================================================
aveage=train['Age'].mean() 
traingai.loc[pd.isnull(traingai.Age),'Age']=aveage          #缺失的年龄用平均年龄替代
testgai.loc[pd.isnull(testgai.Age),'Age']=aveage
# =============================================================================
# Cabin的处理:有cabin的为1 没有cabin的为0
# =============================================================================
traingai.loc[pd.notnull(traingai.Cabin),'Cabin']=1
traingai.loc[pd.isnull(traingai.Cabin),'Cabin']=0  
testgai.loc[pd.notnull(testgai.Cabin),'Cabin']=1        
testgai.loc[pd.isnull(testgai.Cabin),'Cabin']=0          
# =============================================================================
# 没有fare的设为10(初步尝试)
# =============================================================================
traingai.loc[pd.isnull(traingai.Fare),'Fare']=0  
testgai.loc[pd.isnull(testgai.Fare),'Fare']=0 
# =============================================================================
# 将S C Q 分别设为 0 1 2   未知的暂时用随机值代替
# =============================================================================
traingai.loc[traingai.Embarked=='S','Embarked']=0 
traingai.loc[traingai.Embarked=='C','Embarked']=1
traingai.loc[traingai.Embarked=='Q','Embarked']=2 
traingai.loc[pd.isnull(traingai.Embarked),'Embarked']=np.random.randint(0,3)
testgai.loc[testgai.Embarked=='S','Embarked']=0 
testgai.loc[testgai.Embarked=='C','Embarked']=1
testgai.loc[testgai.Embarked=='Q','Embarked']=2 
testgai.loc[pd.isnull(testgai.Embarked),'Embarked']=np.random.randint(0,3)
# =============================================================================
# 将训练集中标签与特征分开  用pop    并处理成矩阵形式
# =============================================================================
labels=traingai.pop('Survived')
labels=np.array(labels)
traingai=np.array(traingai)
testgai=np.array(testgai)
# =============================================================================
# 数据归一化
# =============================================================================
da=traingai.max(axis = 0)
xiao=traingai.min(axis = 0)

data_shape = traingai.shape
data_rows = data_shape[0]
data_cols = data_shape[1]
    
for i in range(0, data_rows, 1):
    for j in range(0, data_cols, 1):
        traingai[i][j] = (traingai[i][j] - xiao[j]) / (da[j] - xiao[j])
        

da=testgai.max(axis = 0)
xiao=testgai.min(axis = 0)

data_shape = testgai.shape
data_rows = data_shape[0]
data_cols = data_shape[1]
    
for i in range(0, data_rows, 1):
    for j in range(0, data_cols, 1):
        testgai[i][j] = (testgai[i][j] - xiao[j]) / (da[j] - xiao[j])
# =============================================================================
# 保存处理之后的特征值       
# =============================================================================
np.savetxt('traingai.txt',traingai)
np.savetxt('testgai.txt',testgai)
np.savetxt('labels.txt',labels)

模型方面,这次用了一个很普通的神经网络,一层隐藏层。
精度0.77990

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值