参加Kaggle比赛的流程
请提前准备好python的数据分析相关库,例如pandas、numpy、sklearn等
1. 参加比赛:Titanic
1.1 在比赛页面下载数据
这里以“泰坦尼克号生存率预测”案例为例
train.csv为训练集,
test.csv为测试集,
gender_submission.csv为提交的样例,用于告诉你提交的格式
1.2 分析数据并训练分类器
# -*- coding: utf-8 -*-import pandas as pd #数据分析
import numpy as np #科学计算
from pandas import Series,DataFramedata_train = pd.read_csv("G:/Machine Learning/Kaggle/GettingStar/Titanic/train.csv")
data_trainfrom sklearn.ensemble import RandomForestRegressor### 使用 RandomForestClassifier 填补缺失的年龄属性
def set_missing_ages(df):# 把已有的数值型特征取出来丢进Random Forest Regressor中age_df = df[['Age','Fare', 'Parch', 'SibSp', 'Pclass']]# 乘客分成已知年龄和未知年龄两部分known_age = age_df[age_df.Age.notnull()].as_matrix()unknown_age = age_df[age_df.Age.isnull()].as_matrix()# y即目标年龄y = known_age[:, 0]# X即特征属性值X = known_age[:, 1:]# fit到RandomForestRegressor之中rfr = RandomForestRegressor(random_state=0, n_estimators=2000, n_jobs=-1)rfr.fit(X, y)# 用得到的模型进行未知年龄结果预测predictedAges = rfr.predict(unknown_age[:, 1::])# 用得到的预测结果填补原缺失数据df.loc[ (df.Age.isnull()), 'Age' ] = predictedAges return df, rfrdef set_Cabin_type(df):df.loc[ (df.Cabin.notnull()), 'Cabin' ] = "Yes"df.loc[ (df.Cabin.isnull()), 'Cabin' ] = "No"return dfdata_train, rfr = set_missing_ages(data_train)
data_train = set_Cabin_type(data_train)dummies_Cabin = pd.get_dummies(data_train['Cabin'], prefix= 'Cabin')dummies_Embarked = pd.get_dummies(data_train['Embarked'], prefix= 'Embarked')dummies_Sex = pd.get_dummies(data_train['Sex'], prefix= 'Sex')dummies_Pclass = pd.get_dummies(data_train['Pclass'], prefix= 'Pclass')df = pd.concat([data_train, dummies_Cabin, dummies_Embarked, dummies_Sex, dummies_Pclass], axis=1)
df.drop(['Pclass', 'Name', 'Sex', 'Ticket', 'Cabin', 'Embarked'], axis=1, inplace=True)import sklearn.preprocessing as preprocessing
scaler = preprocessing.StandardScaler()from sklearn import linear_model# 用正则取出我们要的属性值
train_df = df.filter(regex='Survived|Age_.*|SibSp|Parch|Fare_.*|Cabin_.*|Embarked_.*|Sex_.*|Pclass_.*')
train_np = train_df.as_matrix()# y即Survival结果
y = train_np[:, 0]# X即特征属性值
X = train_np[:, 1:]# fit到RandomForestRegressor之中
clf = linear_model.LogisticRegression(C=1.0, penalty='l1', tol=1e-6)
clf.fit(X, y)data_test = pd.read_csv("G:/Machine Learning/Kaggle/GettingStar/Titanic/test.csv")
data_test.loc[ (data_test.Fare.isnull()), 'Fare' ] = 0
# 接着我们对test_data做和train_data中一致的特征变换
# 首先用同样的RandomForestRegressor模型填上丢失的年龄
tmp_df = data_test[['Age','Fare', 'Parch', 'SibSp', 'Pclass']]
null_age = tmp_df[data_test.Age.isnull()].as_matrix()
# 根据特征属性X预测年龄并补上
X = null_age[:, 1:]
predictedAges = rfr.predict(X)
data_test.loc[ (data_test.Age.isnull()), 'Age' ] = predictedAgesdata_test = set_Cabin_type(data_test)
dummies_Cabin = pd.get_dummies(data_test['Cabin'], prefix= 'Cabin')
dummies_Embarked = pd.get_dummies(data_test['Embarked'], prefix= 'Embarked')
dummies_Sex = pd.get_dummies(data_test['Sex'], prefix= 'Sex')
dummies_Pclass = pd.get_dummies(data_test['Pclass'], prefix= 'Pclass')df_test = pd.concat([data_test, dummies_Cabin, dummies_Embarked, dummies_Sex, dummies_Pclass], axis=1)
df_test.drop(['Pclass', 'Name', 'Sex', 'Ticket', 'Cabin', 'Embarked'], axis=1, inplace=True)test = df_test.filter(regex='Age_.*|SibSp|Parch|Fare_.*|Cabin_.*|Embarked_.*|Sex_.*|Pclass_.*')
predictions = clf.predict(test)
result = pd.DataFrame({'PassengerId':data_test['PassengerId'].as_matrix(), 'Survived':predictions.astype(np.int32)})
result.to_csv("G:/Machine Learning/Kaggle/GettingStar/Titanic/logistic_regression_predictions.csv", index=False)
1.3 得到分类结果,根据比赛格式要求,输出
运行完上述代码后,会得到一个logistic_regression_predictions.csv,打开后如图
1.4 提交结果
2. 编码环境
2.1 使用自己的Jupyter Notebook
2.2 使用Kaggle网站上的Notebook
创建一个Kaggle笔记本(“Notebook”),在其中存储所有代码
(1)单击比赛页面上的笔记本(“Notebooks”)选项卡。然后,点击“新笔记本”(“New Notebook”)。
(2)点击“创建”(“Create”)。(不要更改默认设置:“Python”应该出现在“Select language”下面,而您应该在“Select type”下面选择了“Notebook”。)
这显示了比赛数据的存储位置,以便我们可以将文件加载到笔记本中,下一步我们会做的。
至此,你只需要不断的提升你的模型即可
参加Kaggle比赛的流程相关推荐
- 参加kaggle比赛
我参加Kaggle比赛的体会 转载于:https://www.cnblogs.com/think90/p/5813786.html
- 第一次参加kaggle比赛的一些收获与心得,记录一下
#摘要 虽然陆陆续续接触过深度学习的一些相关知识,但是从来没有系统地学习和总结过.加上之前研究的领域是SLAM(实时建图和定位),没有很好的机会直接应用深度学习技术,实践深度学习的机会也比较少.近段时 ...
- 【第一次参加kaggle比赛记录-Quora Insincere Questions Classification】- Word Embedding
In summary, word embeddings are a representation of the *semantics* of a word, efficiently encoding ...
- Kaggle比赛系列:比赛流程和竞赛分类
一.Kaggle比赛基本流程 1.Importing Libraries and Packages 2.Loading and Viewing Data Set 3.Dealing with NaN ...
- 竞赛老陪跑怎么办?来自一位Kaggle比赛失败者的含泪总结
大数据文摘出品 来源:medium 编译:zeroInfinity.笪洁琼 Kaggle比赛应该是数据竞赛中公认含金量最高的那个.每场比赛,参加的队伍至少上千人,也并非每次都次都能脱引而出,一不小心就 ...
- Kaggle比赛心得
正文共5453个字,5张图,预计阅读时间14分钟. 最近参加了两场Kaggle比赛,收获颇多,一直想写篇文章总结一下.接触Kaggle到现在不到一年,比赛成绩一个银牌(5%)一个铜牌(9%),勉强算入 ...
- 「杂谈」AI工业界都有哪些值得参加的比赛?
https://www.toutiao.com/a6701681119881855499/ 从深度学习新手到有志于站到算法之颠的老鸟,都可以通过参加一些比赛来获取经验或者证明自己,今天聊聊AI图像领域 ...
- 【杂谈】AI工业界都有哪些值得参加的比赛?
从深度学习新手到有志于站到算法之颠的老鸟,都可以通过参加一些比赛来获取经验或者证明自己,今天聊聊AI图像领域值得参加的一些比赛. 作者&编辑 | 汤兴旺&言有三 当我们谈到AI比赛时, ...
- 实战Kaggle比赛----预测房价(多层感知机)
文章目录 实战Kaggle比赛----预测房价 下载和缓存数据集 Kaggle简介 访问和读取数据集 数据预处理 标准正态化.缺失值填充.离散值one-hot编码 小栗子帮助理解 训练 KKK折交叉验 ...
最新文章
- Ironic 的 Rescue 救援模式实现流程
- D3DXCOLOR 和 D3DCOLOR 和 D3DCOLORVALUE
- 大数的菲波那契计算/Huge Fibonacci Numbers - ACM
- 基于OpenResty的弹性网关实践(二)
- 【软件开发底层知识修炼】二十五 ABI之函数调用约定二之函数返回值为结构体时的约定
- 2017双11技术揭秘—TDDL/DRDS 的类 KV 查询优化实践
- A star 算法 (Python)
- python批量将文件夹下所有图片中一种颜色改变为随机颜色
- Android SQLite数据库 SQLiteOpenHelper的操作使用
- 未解决:运行EtherCalc出错:Error: Cannot find module 'zappajs'
- thinkphppaginate.php,thinkphp如何使用paginate及其参数示例使用
- 【c++】设计一个立方体类Box,它能计算并输出立方体的体积和表面积。
- Android实现访斗鱼视频播放
- [ 读书笔记 ] 1 -《 程序员修炼之道 - 通向务实的最高境界 (第2版)》
- C语言从键盘输入1605,山东理工大学ACM平台题答案关于C语言 1605 Balloon Comes!
- 移动互联网创业团队开发管理经验
- CSS中绝对定位导致页面混乱的原因以及解决办法
- 机器学习实战(七):Ensemble Learning and Random Forests
- 新装的mysql数据库默认密码是多少_数据库的设置及其初始密码
- 写给二线城市【Python工程师】的成长指南