介绍

每年,约有760万个动物到达美国的动物收留所。 许多动物被他们的主人丢弃,而其它一部分是因为走失。 这些动物中的大多数都会找到永远的家庭并把它们带回家,但也有许多动物不那么幸运。 美国每年约有270万只狗和猫被安乐死。

使用奥斯汀动物中心的摄入信息数据集,包括品种,颜色,性别和年龄,我们要求Kagglers预测每只动物的结果。

我们也相信这个数据集可以帮助我们理解动物结果的趋势。 这些见解可以帮助避难所将精力集中在需要额外帮助寻找新家的特定动物身上。

这场比赛就是为了能够更准确的预测出每个动物的未来命运~~~

数据

下面来看下kaggle发布的训练数据吧:

训练数据主要包括每个动物的ID以及品种、类型和颜色等。

下面是测试数据:

每个Animal ID都有五种可能的结果:收养,死,安乐死,Return_to_owner,转移。这是一个典型的多类分类问题。好了,不多说了,看代码吧(很清楚)~~~

代码

import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.grid_search import GridSearchCV
import sys
from datetime import datetimedef munge(data, train):data['HasName'] = data['Name'].fillna(0)data.loc[data['HasName'] != 0, "HasName"] = 1data['HasName'] = data['HasName'].astype(int)data['AnimalType'] = data['AnimalType'].map({'Cat': 0, 'Dog': 1})if (train):data.drop(['AnimalID', 'OutcomeSubtype'], axis=1, inplace=True)data['OutcomeType'] = data['OutcomeType'].map({'Return_to_owner': 4, 'Euthanasia': 3, 'Adoption': 0, 'Transfer': 5, 'Died': 2})gender = {'Neutered Male': 1, 'Spayed Female': 2, 'Intact Male': 3, 'Intact Female': 4, 'Unknown': 5, np.nan: 0}data['SexuponOutcome'] = data['SexuponOutcome'].map(gender)def agetodays(x):try:y = x.split()except:return Noneif 'year' in y[1]:return float(y[0]) * 365elif 'month' in y[1]:return float(y[0]) * (365 / 12)elif 'week' in y[1]:return float(y[0]) * 7elif 'day' in y[1]:return float(y[0])data['AgeInDays'] = data['AgeuponOutcome'].map(agetodays)data.loc[(data['AgeInDays'].isnull()), 'AgeInDays'] = data['AgeInDays'].median()data['Year'] = data['DateTime'].str[:4].astype(int)data['Month'] = data['DateTime'].str[5:7].astype(int)data['Day'] = data['DateTime'].str[8:10].astype(int)data['Hour'] = data['DateTime'].str[11:13].astype(int)data['Minute'] = data['DateTime'].str[14:16].astype(int)data['Name+Gender'] = data['HasName'] + data['SexuponOutcome']data['Type+Gender'] = data['AnimalType'] + data['SexuponOutcome']data['IsMix'] = data['Breed'].str.contains('mix', case=False).astype(int)return data.drop(['AgeuponOutcome', 'Name', 'Breed', 'Color', 'DateTime'], axis=1)def best_params(data):rfc = RandomForestClassifier()param_grid = {'n_estimators': [50, 400],'max_features': ['auto', 'sqrt', 'log2']}CV_rfc = GridSearchCV(estimator=rfc, param_grid=param_grid, cv=5)CV_rfc.fit(data[0::, 1::], data[0::, 0])return CV_rfc.best_params_if __name__ == "__main__":in_file_train = 'C:/Users/new/Desktop/data/train.csv'in_file_test = 'C:/Users/new/Desktop/data/test.csv'print("Loading data...\n")pd_train = pd.read_csv(in_file_train)pd_test = pd.read_csv(in_file_test)print("Munging data...\n")pd_train = munge(pd_train, True)pd_test = munge(pd_test, False)pd_test.drop('ID', inplace=True, axis=1)train = pd_train.valuestest = pd_test.valuesprint("Calculating best case params...\n")print(best_params(train))print("Predicting... \n")forest = RandomForestClassifier(n_estimators=400, max_features='auto')forest = forest.fit(train[0::, 1::], train[0::, 0])predictions = forest.predict_proba(test)output = pd.DataFrame(predictions, columns=['Adoption', 'Died', 'Euthanasia', 'Return_to_owner', 'Transfer'])output.columns.names = ['ID']output.index.names = ['ID']output.index += 1print("Writing predictions.csv\n")print(output)output.to_csv('C:/Users/new/Desktop/data/predictions.csv')print("Done.\n")

结果

kaggle实战之流浪猫狗归处预测相关推荐

  1. 流浪宠物救助网站前端页面_全国爱心人士齐聚鞍山 救助流浪猫狗

    入冬之后,流浪猫狗的"吃饭问题"成了众多爱心人士的牵挂.12日上午,来自全国各地的20余位爱心人士,来到宁远镇张忠堡村一流浪猫狗救助站,将价值7000余元的宠物用品捐赠给救助站. ...

  2. JAVA流浪猫狗救助平台

    JAVA流浪猫狗救助.zip-其它文档类资源-CSDN下载 JAVA流浪猫狗救助平台 1.数据库设计 2.运行截图 首页 欢迎页 领养中心 登录 Java+SSM 完整版源码请在我主页资源里面下载

  3. Java项目:流浪猫狗救助管理系统(java+SSM+JSP+bootstrap+jQuery+mysql)

    源码获取:博客首页 "资源" 里下载! 项目介绍 流浪猫狗救助管理系统.该项目分为前后台: 前台主要功能包括:会员的注册登陆,流浪猫狗知识,领养中心,团队活动,流浪宠物详情,申请领 ...

  4. java毕业设计流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...

  5. java毕业设计社区流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计社区流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计社区流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试 本源 ...

  6. 基于ssm流浪猫狗|流浪狗宠物救助网站

    <ssm流浪猫狗救助网站> 该项目采用技术: 后端采用ssm框架 前端采用了jsp+html+css+bootstrap框架 mysql数据库+tomcat服务器,项目含有源码.文档.配套 ...

  7. Java项目:ssm流浪猫狗救助管理系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 流浪猫狗救助管理系统.该项目分为前后台: 前台主要功能包括:会员的注册登陆,流浪猫狗知 ...

  8. [附源码]Python计算机毕业设计SSM流浪猫狗救助站(程序+LW)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  9. 基于Java Web的流浪猫狗救助网站

    一.项目介绍 流浪猫狗救助网站适合作为毕业设计.课程设计.大作业等.在此网站可以登录/注册.查看流浪猫狗信息.在线提交救助申请.查看团队活动等.包含:1.首页介绍 2.流浪猫狗知识 3.领养中心 4. ...

  10. java基于微信小程序的流浪猫狗动物收养系统 uniapp 小程序

    随着迅速的发展,宠物饲养也较以前发生很大的变化,社区流浪猫狗救助网站系统以其独有的优势脱颖而出."社区流浪猫狗救助网站"是以JAVA程序设计语言课为基础的设计出适合社区流浪猫狗救助 ...

最新文章

  1. Linux最大打开文件描述符数
  2. 技术图文:Python魔法方法之属性访问详解
  3. OpenStack Neutron浅析(二)
  4. hadoop NameNode HA 和ResouceManager HA
  5. P6772-[NOI2020]美食家【矩阵乘法,倍增】
  6. 如何进行 node.js 的 安装与卸载
  7. ES6 - 基础学习(22): async 函数
  8. linux用户个人的环境变量,linux下的变量以及系统和个人环境变量的配置文件
  9. Jmeter测试计划无法保存或者另存为
  10. VS2017社区版试用30天过期重新激活方法
  11. Firefox版哔哩哔哩助手,修改自chrome1.2.1版
  12. 还在用PPT做组织架构图?公司都在用的架构图软件是什么?
  13. Java.I/O流编程一览笔录
  14. c++:简单的运算符重载
  15. 人民币大写转阿拉伯数字的java实现
  16. CSS 关键字 inherit 和 unset
  17. 求助,我电脑是不是中毒了。
  18. gta4光影补丁_GTA4低配置优化版ENB光影补丁
  19. ​聚焦2021年‘人工智能’产业三大发展趋势有哪些?
  20. underscore.js源码整体框架解析

热门文章

  1. Angular 2 ViewChild ViewChildren
  2. java 局部内部类
  3. Mercurial (hg)
  4. 寄售Consignment和VMI有什么区别?
  5. Ngnix中的fastcgi参数性能优化和解释
  6. DOM技术对xml增删改查后更新源文件异常报错
  7. JDBC连接效率问题
  8. 兼容多种浏览器“复制到剪贴板”的解决方案
  9. Eclipse或MyEclipse—在Eclipse或MyEclipse中如何将jar包和相应的源代码关联起来
  10. Linux里如何查找文件内容