一直想着抓取股票的变化,偶然的机会在看股票数据抓取的博客看到了kaggle,然后看了看里面的题,感觉挺新颖的,就试了试。

题目如图:给了一个train.csv,现在预测test.csv里面的Passager是否幸存。train.csv里面包含的乘客信息有

PassagerId 乘客id
Survived 乘客是否幸存
Pclass 仓位
Name 乘客姓名
Sex 乘客性别
Age 乘客年龄
SibSp 船上是否有兄弟姐妹
Parch 穿上是否有父母子女
Ticket 船票信息
Fare 票价
Cabin 客舱
Embarked 上船地址

然后表里面的Sibsp,Parch,Name,PassagerId,Ticket,Cabin都是些数据无关的信息。

然后用到了随机森林算法。

#-*- coding:utf-8 -*-
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
from subprocess import check_outputimport csv
import random as rnd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
from sklearn.cross_validation import cross_val_score
from sklearn.grid_search import GridSearchCV, RandomizedSearchCV
train_df = pd.read_csv('train.csv', header=0)
test_df = pd.read_csv('test.csv', header=0)
df = pd.concat([train_df, test_df])
df = df.reset_index()
df = df.drop('index',axis=1)
#移除index列
df = df.reindex_axis(train_df.columns,axis=1)
#填补合并之后的表中 属性是Age,Fare,Embarked为空的值
df['Age'][df['Age'].isnull()] = df['Age'].median()
df['Fare'][df['Fare'].isnull()] = df['Fare'].median()
df['Embarked'][df['Embarked'].isnull()] = df['Embarked'].mode().values
#将表中的Sex属性做映射
df['Sex'] = pd.factorize(df['Sex'])[0]
df['Embarked'] = pd.factorize(df['Embarked'])[0]
df['family_member'] = df['SibSp'] + df['Parch']
#移除表中的'Cabin','Ticke t','Name','SibSp','Parch','PassengerId'属性
d= df.drop(['Cabin','Ticke t','Name','SibSp','Parch','PassengerId'],axis=1)
survived_member = df[df['Survived'].notnull()].values
test_message = df[df['Survived'].isnull()].values
Y = survived_member[:, 0].astype(int)
#取servived属性不为空的属性的第一列
X = survived_member[:, 1:].astype(int)
#取servived属性不为空的出第一列之外的所有信息
result = RandomForestClassifier(n_estimators=1000, random_state=312, min_samples_leaf=3).fit(X, Y)
#随机森林算法
pre = result.predict(test_message[:, 1:]).astype(int)
Id = test_df['PassengerId']
result_csv = open('result1.csv',"w")
result_fd = csv.writer(result_csv)
result_fd.writerow(['PassengerId','Survived'])
result_fd.writerows(zip(Id,pre))
result_csv.close()

Kaggle:Titanic: Machine Learning from Disaster的更多相关文章

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

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

  2. Kaggle项目实战一:Titanic: Machine Learning from Disaster

    项目地址 https://www.kaggle.com/c/titanic 项目介绍: 除了乘客的编号以外,还包括下表中10个字段,构成了数据的所有特征 Variable Definition Key ...

  3. Kaggle比赛(一)Titanic: Machine Learning from Disaster

    泰坦尼克号幸存预测是本小白接触的第一个Kaggle入门比赛,主要参考了以下两篇教程: https://www.cnblogs.com/star-zhao/p/9801196.html https:// ...

  4. kaggle _Titanic: Machine Learning from Disaster

    A Data Science Framework: To Achieve 99% Accuracy https://www.kaggle.com/ldfreeman3/a-data-science-f ...

  5. 学习小记: Kaggle Learn - Machine Learning Explainability

    Method Feature(s) Sample(s) Result Value/Feature Permutation Importance 1 all validation samples Sin ...

  6. How do I learn machine learning?

    https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644   How Can I Learn X? ...

  7. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

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

    Step 1: Basic Python Skills install Anacondaincluding numpy, scikit-learn, and matplotlib Step 2: Fo ...

  9. [Machine Learning] 国外程序员整理的机器学习资源大全

    本文汇编了一些机器学习领域的框架.库以及软件(按编程语言排序). 1. C++ 1.1 计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV—它提供C++, C ...

随机推荐

  1. 使当前对象相对于上层DIV 水平、垂直居中定位

    <!doctype html> <html> <head> <meta http-equiv="content-type" content ...

  2. (转)Ubuntu 17.04_64上搭建巡风扫描系统(资产信息漏洞扫描内网神器)

    巡风简介 巡风是一款适用于企业内网的漏洞快速应急.巡航扫描系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测并输出结果报表.其主体分为两部分:网络资产识别 ...

  3. apue3.e (基于maxos 10.9)

    在Google搜到你的问题,我也碰到同样的问题(5分钟前),然后通过其他的搜索结果找到答案,不知道你是否跟我一样,出现以下的错误: ... clang: error: unknown argument ...

  4. AtCoder Regular Contest 088 E - Papple Sort(树状数组+结论)

    结论:每次把字符丢到最外面最优,用树状数组统计答案,把字符放到最外边后可以当成消失了,直接在树状数组上删掉就好. 感性理解是把字符丢到中间会增加其他字符的移动次数,但是丢到外面不会,所以是正确的. # ...

  5. [ACM][2018南京预赛]Lpl and Energy-saving Lamps

    一.题面 样例输入: 5 4 3 10 5 2 7 10 5 1 4 8 7 2 3 6 4 7 样例输出: 4 0 1 1 3 6 5 1 5 1 2 0 3 2 4 4 3 6 5 1 二.思路 ...

  6. mysql三-2:数据类型

    一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data ...

  7. c++多态性详解(转)

    什么是多态? 多态一词最初来源于希腊语,意思是具有多种形式或形态的情形,当然这只是字面意思,它在C++语言中多态有着更广泛的含义. 这要先从对象的类型说起!对象的类型有两种: 实例:Derived1类 ...

  8. C/C++中如何计算程序运行的时间

    一个程序的功能通常有很多种方法来实现,怎么样的程序才算得上最优呢?举个例子,如果实现同一个功能的两个程序,一个一点按钮就给出运行结果,而另一个则需要漫长的时间去等待,就像安装WINDOWS XP一样( ...

  9. PID控制算法的C语言实现十一  模糊算法简介

    在PID控制算法的C语言实现九中,文章已经对模糊PID的实质做了一个简要说明.本来打算等到完成毕业设计,工作稳定了再着力完成剩下的部分.鉴于网友的要求和信任,抽出时间来,对模糊PID做一个较为详细的论 ...

  10. jquery validate ajax 验证重复的2种方法

    转载自:http://blog.51yip.com/jsjquery/1484.html jquery validate 经过这种多年的改良,已经很完善了.它能满足80%的验证需要,如果validat ...