# coding: utf-8

# In[19]:

# 0.78468

# In[20]:

import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
from sklearn import preprocessing # In[21]: train_path = r'C:\Users\cbattle\Desktop\train.csv' # r'/home/adminn/桌面/train.csv'
test_path = r'C:\Users\cbattle\Desktop\test.csv' # r'/home/adminn/桌面/test.csv'
out_path = r'C:\Users\cbattle\Desktop\out.csv' # r'/home/adminn/桌面/out.csv' train = pd.read_csv(train_path)
test = pd.read_csv(test_path) print('train:',train.shape)
print('test:',test.shape)
# train.info()
# test.info()
# print(train.head()) # 属性列
# print([col for col in train])
# print([col for col in test]) # 策略
# ['PassengerId', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked']
# drop onehot drop 0/1 num num num drop num 0/1 用S补空,onehot # In[22]: X = train.drop(['Survived','PassengerId','Name'], axis=1)
y = train['Survived']
Xtest = test.drop(['PassengerId','Name'], axis=1)
# print('X:',X.shape)
# print('y:',y.shape)
# print('Xtest:',Xtest.shape) # In[23]: key = [col for col in X if X[col].dtype != 'object' # numberic ['Pclass', 'Age', 'SibSp', 'Parch', 'Fare']
or col == 'Sex'
or col == 'Embarked'
or col == 'Cabin'
]
X = X[key]
Xtest = Xtest[key]
# print(key) def showNullNum(a,b):
print(a.isnull().sum())
print()
print(b.isnull().sum())
print('------------------------------------') showNullNum(X,Xtest) # Xtest['Fare'][Xtest['Fare'].isnull()] = Xtest['Fare'].median() # replace nan with median
# X = X.dropna(axis=0) # drop X and y in the same row #-------------------------------------------------------------------------------
# Pclass Ticket class
# 1 = 1st, 2 = 2nd, 3 = 3rd onehot
# for i in X['Pclass'].unique():
# X['Pclass_'+str(i)] = (X['Pclass']==i).astype(int)
# Xtest['Pclass_'+str(i)] = (Xtest['Pclass']==i).astype(int) # X = X.drop(['Pclass'],axis=1)
# Xtest = Xtest.drop(['Pclass'],axis=1) #-------------------------------------------------------------------------------
# Sex
X['Sex'] = X['Sex'].apply(lambda i:1 if i=='female' else 0)
Xtest['Sex'] = Xtest['Sex'].apply(lambda i:1 if i=='female' else 0) #-------------------------------------------------------------------------------
# Embarked # 1 label encoding
X['Embarked'][X['Embarked'].isnull()] = 'S'
X['Embarked'] = X['Embarked'].map({'S':0,'C':1,'Q':2}).astype(int)
Xtest['Embarked'] = Xtest['Embarked'].map({'S':0,'C':1,'Q':2}).astype(int)
# or use sklearn.preprocessing.LabelEncoder # print(X.head())
# print(Xtest.head()) # X['Embarked'][X['Embarked'].isnull()] = 'S'
# from sklearn import preprocessing
# le = preprocessing.LabelEncoder()
# X['Embarked'] = le.fit_transform(X['Embarked'])
# Xtest['Embarked'] = le.transform(Xtest['Embarked']) # print(X.head())
# print(Xtest.head()) # 2 onehot
# for i in X['Embarked'].unique():
# print(i, 'sum:', sum(X['Embarked']==i)) # X['Embarked'][X['Embarked'].isnull()] = 'S' # most_frequent
# for i in X['Embarked'].unique():
# X['Embarked_type_'+i] = (X['Embarked']==i).astype(int)
# Xtest['Embarked_type_'+i] = (Xtest['Embarked']==i).astype(int) # X = X.drop(['Embarked'],axis=1)
# Xtest = Xtest.drop(['Embarked'],axis=1)
# print(X.head(10)) #-------------------------------------------------------------------------------
# Cabin
# has a cabin or not
# print(X.head(5))
Xtest['Cabin'] = Xtest['Cabin'].apply(lambda i:1 if isinstance(i,str) else 0)
X['Cabin'] = X['Cabin'].apply(lambda i:1 if isinstance(i,str) else 0)
# print(X.head(5)) #-------------------------------------------------------------------------------
# age and fare
# use median to replace nan
from sklearn.preprocessing import Imputer
ip = Imputer(strategy='median')
X = ip.fit_transform(X)
Xtest = ip.transform(Xtest)
print(np.isnan(X).sum(),np.isnan(Xtest).sum()) # In[24]: from xgboost import XGBClassifier
xgb = XGBClassifier()
xgb.fit(X,y)
ans = xgb.predict(Xtest) # from sklearn.tree import DecisionTreeClassifier
# from sklearn.ensemble import ExtraTreesClassifier
# from sklearn.svm import LinearSVC # In[25]: out = pd.DataFrame({'PassengerId':test['PassengerId'],'Survived':ans})
out.to_csv(out_path,index = False)
print('ok') # In[26]: from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit(['a','b','c'])
ans = le.transform(['a','a','c'])
print(ans)

kaggle Titanic的更多相关文章

  1. kaggle& titanic代码

    这两天报名参加了阿里天池的’公交线路客流预测‘赛,就顺便先把以前看的kaggle的titanic的训练赛代码在熟悉下数据的一些处理.题目根据titanic乘客的信息来预测乘客的生还情况.给了titan ...

  2. kaggle Titanic心得

    Titanic是kaggle上一个练手的比赛,kaggle平台提供一部分人的特征,以及是否遇难,目的是预测另一部分人是否遇难.目前抽工作之余,断断续续弄了点,成绩为0.79426.在这个比赛过程中,接 ...

  3. Kaggle:Titanic: Machine Learning from Disaster

    一直想着抓取股票的变化,偶然的机会在看股票数据抓取的博客看到了kaggle,然后看了看里面的题,感觉挺新颖的,就试了试. 题目如图:给了一个train.csv,现在预测test.csv里面的Passa ...

  4. Kaggle Titanic补充篇

    1.关于年龄Age 除了利用平均数来填充,还可以利用正态分布得到一些随机数来填充,首先得到已知年龄的平均数mean和方差std,然后生成[ mean-std,  mean+std ]之间的随机数,然后 ...

  5. Kaggle Titanic solution 纯规则学习

    其实就是把train.csv拿出来看了看,找了找规律,调了调参数而已. 找到如下规律: 1.男的容易死,女的容易活 2.一等舱活,三等舱死 3.老人死,小孩活 4.兄弟姐妹多者死 5.票价高的活 6. ...

  6. 逻辑回归应用之Kaggle泰坦尼克之灾(转)

    正文:14pt 代码:15px 1 初探数据 先看看我们的数据,长什么样吧.在Data下我们train.csv和test.csv两个文件,分别存着官方给的训练和测试数据. import pandas ...

  7. Kaggle 泰坦尼克

    入门kaggle,开始机器学习应用之旅. 参看一些入门的博客,感觉pandas,sklearn需要熟练掌握,同时也学到了一些很有用的tricks,包括数据分析和机器学习的知识点.下面记录一些有趣的数据 ...

  8. Survival on the Titanic (泰坦尼克号生存预测)

    >> Score 最近用随机森林玩了 Kaggle 的泰坦尼克号项目,顺便记录一下. Kaggle - Titanic: Machine Learning from Disaster On ...

  9. 机器学习案例学习【每周一例】之 Titanic: Machine Learning from Disaster

     下面一文章就总结几点关键: 1.要学会观察,尤其是输入数据的特征提取时,看各输入数据和输出的关系,用绘图看! 2.训练后,看测试数据和训练数据误差,确定是否过拟合还是欠拟合: 3.欠拟合的话,说明模 ...

随机推荐

  1. C++中预定义的宏

    以下信息摘自与标准C++的文档中. 如果把这些宏加在程序的日志中,它将为开发人员进行问题分析提供了很好的帮助. standard c++ 1998版The following macro names ...

  2. BZOJ - 4196 软件包管理器 (树链剖分+dfs序+线段树)

    题目链接 设白色结点为未安装的软件,黑色结点为已安装的软件,则: 安装软件i:输出结点i到根的路径上的白色结点的数量,并把结点i到根的路径染成黑色.复杂度$O(nlog^2n)$ 卸载软件i:输出结点 ...

  3. CodeForces - 803F: Coprime Subsequences(莫比乌斯&容斥)

    Let's call a non-empty sequence of positive integers a1, a2... ak coprime if the greatest common div ...

  4. 转载:maven依赖范围

    其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath(注意是与classpath)的关系. 主要的是三种依赖关系如下:1.compile: 默认编译依赖范围.对于编译,测试,运行 ...

  5. Unity 头发随动效果

    目标 实现角色的衣袖.头发.裙摆.披风.尾巴等,在角色运动时,可以产生随动的效果.类似王者荣耀角色展示界面. 准备 源码出出处:https://github.com/unity3d-jp/unityc ...

  6. extjs控制器调用其他视图的函数实现控件赋值。

  7. 蓝桥杯 算法训练 ALGO-139 s01串

    算法训练 s01串 时间限制:1.0s 内存限制:256.0MB 问题描述  s01串初始为”0”  按以下方式变换  0变1,1变01 输入格式  1个整数(0~19) 输出格式  n次变换后s01 ...

  8. 蓝桥杯 算法训练 ALGO-140 P1101

    算法训练 P1101 时间限制:1.0s 内存限制:256.0MB    有一份提货单,其数据项目有:商品名(MC).单价(DJ).数量(SL).定义一个结构体prut,其成员是上面的三项数据.在主函 ...

  9. Spring 与 MyBatis 的整合

    本文讨论 Spring 与 MyBatis 的整合. 在 beans.xml 中我们定义了两个 bean: SqlSessionFactoryBean.SqlSessionTemplate. 1.Sq ...

  10. JAVA基础知识(16)-----Integer

    Integer对象数字格式的字符串转成基本数据类型的方法:1:将该字符串封装成了Integer对象,并调用对象的方法intValue();2:使用Integer.parseInt(numstring) ...