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

最新文章

  1. svm训练显示信息说明
  2. 抽象工厂模式(python版)
  3. gitcafe 使用hexo搭建博客
  4. [Regionals 2012 :: Asia - Tokyo ]
  5. shell 比较
  6. c# 方法重载
  7. asp脱离源代码管理
  8. hashlib使用时出现: Unicode-objects must be encoded before hashing
  9. Linux环境下启动MySQL数据库出现找不到mysqld.sock的解决办法!
  10. markdown的使用语法的补充
  11. mysql group by 对多个字段进行分组
  12. oracle user locked(timed)处理
  13. python生产者消费者模型优点
  14. day29-序列化 json、pickle、shelve
  15. Final发布:文案+美工展示博客
  16. JVM 垃圾回收机制和常见算法
  17. Java入门:读写文本文件
  18. dubbo+maven多模块项目单元测试
  19. SDUT2013级測试赛_D
  20. SharePoint 2013 附加内容数据库后出现404错误

热门文章

  1. mysql出现mysql server has gone away错误的解决办法
  2. CodeForces - 138C: Mushroom Gnomes - 2 (线段树&概率&排序)
  3. ACM学习历程—SNNUOJ1213 加油站问题(动态规划 || 数学)
  4. swing之JDialog
  5. PHP数组编码转换
  6. bzoj 3505 [Cqoi2014]数三角形——排列组合
  7. c++11之二: 类成员变量初始化
  8. laravel config文件的使用
  9. hihoCoder#1079(线段树+坐标离散化)
  10. 获取wifi热点