kaggle初探(1)-- step by step实现泰坦尼克号船员获救预测

1.简介

Kaggle是数据科学领域的一个重要竞赛网站,主要分为Featured、Research、Recruitment、Getting Started四个方面的竞赛,各个方面竞赛都有着自己的特点,对应着不同的人群。对于一个数据挖掘初学者而言,在kaggle开始一个竞赛之前要有一点必要的准备。

2.前期准备

1.账号注册:
注册一个kaggle账号是必须的,进入kaggle官网进行注册就ok了。
2.一门适合进行数据分析的语言:
kaggle官方推荐的是pythonR语言。本文以python为例,配置好python需要用到的库(本文主要依赖库:numpy、matplotlib、scipy、pandas)之后可以开始尝试一些入门的竞赛。

3.kaggle入门

kaggle入门说到底还是数据挖掘入门,kaggle网站本身的操作是是很简单的。一个比赛的比赛界面会有对于这个比赛的介绍、要求实现的目的、最终提交的数据格式等信息,可以在比赛界面下载比赛所用的数据用来训练和测试,也可以通过查看kennels了解一些很棒的解答,实时排名也可以在线查看。
notes:本文使用数据集下载地址
1.Pandas使用
Pandas作为一个构建数据框架非常有用的包,在这里不得不提及,他的基本操作如下:
a.创建对象
s = pd.Series([1,2,3,4,5], dtype = ~)
创建出来的对象是由一个索引值对应一个元素。可以通过s[i]的形式对元素进行访问。
b.创建数据框架
这是一个在数据挖掘中的十分有用的方法,利用这个方法可以创建特定的索引,并且利用这个索引可以随意一个对象的多个属性。
name = [“GuangZhou”, “BeiJing”]
res_table = pd.DataFrame({‘A’ : 1.,
‘B’: np.zeros(2)}, index=name)
由此可以创建一个数据框架
c.访问对象
使用head()和tail()函数来进行访问。
和np一样,可以中下标来进行访问,如df[1:3], df[“A”]
d.简单排序
sort_index():按索引排序
sort_value():元素值排序
e.选择对象
用loc(index_num)访问索引对应的属性值
用iloc(num)访问对应的位置
利用元素值大小进行筛选df[df.A > 0]
用isin()进行过滤
f.分组
利用groupby(sth).sum()函数对特征进行分组。
g.合并数据集
pd.concat(dp1, dp2)可以将两个bp类型对象按照所选参数进行结合,得到一个新的bp类型对象。
pandas用法非常灵活和实用,使用它可以完成基本的统计分组操作,可以把数据很好的组织起来。
附上一个很好的pandas学习链接十分钟学会pandas
2.python数据可视化
由于在kaggle上面下载的数据是csv类型的数据,因此对数据进行分析时,数据的可视化就格外重要。这里以Titanic沉船获救人员预测分析为例来进行数据可视化。
首先下载好数据集,文件组织形式如下:

Titanic/
├── test.py # 主程序文件
├── train.csv # 训练文件
└── test.csv #测试文件

使用matplotlib包来进行绘制,主要调用plot()函数来进行绘制。
plot()函数解析:
plot()函数是python数据可视化的一个重要工具,用来绘制基本的统计图和各种线,可以通过plot函数控制绘制线的种类颜色等相关信息,同时也可以指定绘制的图像类型,plot()函数会根据指定的类型来进行绘制。
用例->依据获救与否对进行绘制

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np
import matplotlib.pylab as plt

train = pd.read_csv('./train.csv', header = 0, dtype = {'Age': np.float64})

train["Survived"].value_counts().plot(kind= "bar")
plt.ylable(u'people')
plt.title(u'survived')

plt.show()

这里写图片描述
->仓位等级获救情况

import pandas as pd
import numpy as np
import matplotlib.pylab as plt

train = pd.read_csv('./train.csv', header = 0, dtype = {'Age': np.float64})

survived_0 = train.Pclass[train.Survived == 1].value_counts()
survived_1 = train.Pclass[train.Survived == 0].value_counts()

df = pd.DataFrame({u'survived': survived_0, u'not survived': survived_1})
df.plot(kind = 'bar', stacked = True)

plt.title(u'class-survived')
plt.xlabel(u'level')
plt.ylabel(u'survived')

plt.show()

这里写图片描述
->各仓位年龄分布

import pandas as pd
import numpy as np
import matplotlib.pylab as plt

train = pd.read_csv('./train.csv', header = 0, dtype = {'Age': np.float64})

plt.scatter(train.Age, train.Pclass)
plt.xlabel(u'ages')
plt.ylabel(u'class')

plt.show()

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值