kaggle Titanic

# 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)

原文地址:https://www.cnblogs.com/cbattle/p/8919752.html

时间: 2024-08-29 15:51:22

kaggle Titanic的相关文章

kaggle Titanic心得

Titanic是kaggle上一个练手的比赛,kaggle平台提供一部分人的特征,以及是否遇难,目的是预测另一部分人是否遇难.目前抽工作之余,断断续续弄了点,成绩为0.79426.在这个比赛过程中,接触并了解了一些数据挖掘比赛的基本流程,现记录一下. 1. 分析数据 因为数据量比较小,train有800多条数据,test有400多条数据,因此这里用了execl的数据透视表分析. 同时python提供pandas库,可以很好的分析数据. 2. 缺失值填充 关于Age,Fare,Embarked三个

七步精通Python机器学习 转

开始.这是最容易令人丧失斗志的两个字.迈出第一步通常最艰难.当可以选择的方向太多时,就更让人两腿发软了. 从哪里开始? 本文旨在通过七个步骤,使用全部免费的线上资料,帮助新人获取最基本的 Python 机器学习知识,直至成为博学的机器学习实践者.这篇概述的主要目的是带领读者接触众多免费的学习资源.这些资源有很多,但哪些是最好的?哪些相互补充?怎样的学习顺序才最好? 我假定本文的读者不是以下任何领域的专家: ?  机器学习 ?  Python ?  任何Python的机器学习.科学计算.数据分析库

Python (1) - 7 Steps to Mastering Machine Learning With Python

Step 1: Basic Python Skills install Anacondaincluding numpy, scikit-learn, and matplotlib Step 2: Foundational Machine Learning Skills Unofficial Andrew Ng course notes Tom Mitchell Machine Learning Lectures Step 3: Scientific Python Packages Overvie

七步精通Python机器学习--转载

作者简介: Matthew Mayo    翻译:王鹏宇 开始.这是最容易令人丧失斗志的两个字.迈出第一步通常最艰难.当可以选择的方向太多时,就更让人两腿发软了. 从哪里开始? 本文旨在通过七个步骤,使用全部免费的线上资料,帮助新人获取最基本的 Python 机器学习知识,直至成为博学的机器学习实践者.这篇概述的主要目的是带领读者接触众多免费的学习资源.这些资源有很多,但哪些是最好的?哪些相互补充?怎样的学习顺序才最好? 我假定本文的读者不是以下任何领域的专家: 机器学习 Python 任何Py

Spark学习笔记——泰坦尼克生还预测

package kaggle import org.apache.spark.SparkContext import org.apache.spark.SparkConf import org.apache.spark.sql.{SQLContext, SparkSession} import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.mllib.classification.{LogisticR

【转】数据分析

详解 Kaggle 房价预测竞赛优胜方案:用 Python 进行全面数据探索 方法框架: 理解问题:查看每个变量并且根据他们的意义和对问题的重要性进行哲学分析. 单因素研究:只关注因变量( SalePrice),并且进行更深入的了解. 多因素研究:分析因变量和自变量之间的关系. 基础清洗:清洗数据集并且对缺失数据,异常值和分类数据进行一些处理. 检验假设:检查数据是否和多元分析方法的假设达到一致. 介绍:箱线图 数据异常值 箱形图为我们提供了识别异常值的一个标准:异常值被定义为小于Q1-1.5I

泰坦尼克号生存预测

从Kaggle官网下载数据:train .test. 赛事描述: 泰坦尼克号的沉没是历史上最臭名昭著的沉船之一.1912年4月15日,泰坦尼克号在处女航时与冰山相撞沉没,2224名乘客和船员中有1502人遇难.这一耸人听闻的悲剧震惊了国际社会,并导致更好的船舶安全法规.船难造成如此巨大的人员伤亡的原因之一是船上没有足够的救生艇供乘客和船员使用.虽然在沉船事件中幸存下来是有运气因素的,但有些人比其他人更有可能存活下来.比如妇女.儿童和上层阶级. 在此次比赛中,我们需要参赛者预测哪一类人更有可能存活

python3中的os.path模块

os.path模块主要用于获取文件的属性,这里对该模块中一些常用的函数做些记录. os.abspath(path):获取文件的绝对路径.这里path指的是路径,例如我这里输入“data.csv” [In] os.path.abspath('data.csv') [Out] 'E:\\kaggle\\Titanic\\data.csv' os.path.basename(path):获取文件名称.该函数默认通过 ‘\’来截取字符串获取文件名,返回最后一个'\'符号后面的内容 [In] os.pat

[kaggle入门] Titanic Machine Learning from Disaster

Titanic Data Science Solutions¶ https://www.kaggle.com/startupsci/titanic-data-science-solutions 数据挖掘竞赛七个步骤:¶ Question or problem definition. Acquire training and testing data. Wrangle, prepare, cleanse the data. Analyze, identify patterns, and explo