kaggle竞赛入门整理
1、Bike Sharing Demand
kaggle: https://www.kaggle.com/c/bike-sharing-demand
目的:根据日期、时间、天气、温度等特征,预测自行车的租借量
处理:1、将日期(含年月日时分秒)提取出年,月, 星期几,以及小时
2、season, weather都是类别标记的,利用哑变量编码
算法模型选取:
回归问题:1、RandomForestRegressor
2、GradientBoostingRegressor
# -*- coding: utf- -*-
import csv
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt train = pd.read_csv('data/train.csv')
test = pd.read_csv('data/test.csv') # 选取特征值
selected_features = ['datetime', 'season', 'holiday',
'workingday', 'weather', 'temp', 'atemp', 'humidity', 'windspeed'] #X_train = train[selected_features]
Y_train = train["count"]
result = test["datetime"] # 特征值处理
month = pd.DatetimeIndex(train.datetime).month
day = pd.DatetimeIndex(train.datetime).dayofweek
hour = pd.DatetimeIndex(train.datetime).hour
season = pd.get_dummies(train.season)
weather = pd.get_dummies(train.weather) X_train = pd.concat([season, weather], axis=)
X_test = pd.concat([pd.get_dummies(test.season), pd.get_dummies(test.weather)], axis=)
X_train['month'] = month
X_test['month'] = pd.DatetimeIndex(test.datetime).month
X_train['day'] = day
X_test['day'] = pd.DatetimeIndex(test.datetime).dayofweek
X_train['hour'] = hour
X_test['hour'] = pd.DatetimeIndex(test.datetime).hour
X_train['holiday'] = train['holiday']
X_test['holiday'] = test['holiday']
X_train['workingday'] = train['workingday']
X_test['workingday'] = test['workingday']
X_train['temp'] = train['temp']
X_test['temp'] = test['temp']
X_train['humidity'] = train['humidity']
X_test['humidity'] = test['humidity']
X_train['windspeed'] = train['windspeed']
X_test['windspeed'] = test['windspeed'] from sklearn.ensemble import *
clf = GradientBoostingRegressor(n_estimators=, max_depth=)
clf.fit(X_train, Y_train)
result = clf.predict(X_test)
result = np.expm1(result) df=pd.DataFrame({'datetime':test['datetime'], 'count':result})
df.to_csv('results1.csv', index = False, columns=['datetime','count']) from sklearn.ensemble import RandomForestRegressor
gbr = RandomForestRegressor()
gbr.fit(X_train, Y_train) y_predict = gbr.predict(X_test).astype(int) df = pd.DataFrame({'datetime': test.datetime, 'count': y_predict})
df.to_csv('result2.csv', index=False, columns=['datetime', 'count'])
#predictions_file = open("RandomForestRegssor.csv", "wb")
#open_file_object = csv.writer(predictions_file)
#open_file_object.writerow(["datetime", "count"])
#open_file_object.writerows(zip(res_time, y_predict))
2、Daily News for Stock Market Prediction
通过历史数据:包含每日点击率最高的25条新闻,与当日股市涨跌,来预测未来股市涨跌
方法一:
1、将25条新闻合并成一篇新闻,然后对每个单词做预处理(去掉特殊字符,含数字的单词,删除停词,变成小写,取词干),然后用TF-IDF提取特征,用SVM训练
2、用word2vec提取特征
具体实现:
https://github.com/yjfiejd/News_predict
3、
kaggle竞赛入门整理的更多相关文章
- Kaggle竞赛入门(二):如何验证机器学习模型
本文翻译自kaggle learn,也就是kaggle官方最快入门kaggle竞赛的教程,强调python编程实践和数学思想(而没有涉及数学细节),笔者在不影响算法和程序理解的基础上删除了一些不必要的 ...
- Kaggle竞赛入门:决策树算法的Python实现
本文翻译自kaggle learn,也就是kaggle官方最快入门kaggle竞赛的教程,强调python编程实践和数学思想(而没有涉及数学细节),笔者在不影响算法和程序理解的基础上删除了一些不必要的 ...
- 《Python机器学习及实践:从零开始通往Kaggle竞赛之路》
<Python 机器学习及实践–从零开始通往kaggle竞赛之路>很基础 主要介绍了Scikit-learn,顺带介绍了pandas.numpy.matplotlib.scipy. 本书代 ...
- 《机器学习及实践--从零开始通往Kaggle竞赛之路》
<机器学习及实践--从零开始通往Kaggle竞赛之路> 在开始说之前一个很重要的Tip:电脑至少要求是64位的,这是我的痛. 断断续续花了个把月的时间把这本书过了一遍.这是一本非常适合基于 ...
- kaggle竞赛分享:NFL大数据碗(上篇)
kaggle竞赛分享:NFL大数据碗 - 上 竞赛简介 一年一度的NFL大数据碗,今年的预测目标是通过两队球员的静态数据,预测该次进攻推进的码数,并转换为该概率分布: 竞赛链接 https://www ...
- 如何使用Python在Kaggle竞赛中成为Top15
如何使用Python在Kaggle竞赛中成为Top15 Kaggle比赛是一个学习数据科学和投资时间的非常的方式,我自己通过Kaggle学习到了很多数据科学的概念和思想,在我学习编程之后的几个月就开始 ...
- 初窥Kaggle竞赛
初窥Kaggle竞赛 原文地址: https://www.dataquest.io/mission/74/getting-started-with-kaggle 1: Kaggle竞赛 我们接下来将要 ...
- (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO
http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...
- [刷题]算法竞赛入门经典 3-12/UVa11809
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-4/UVa11809:Floating-Point Numbers 代码: //UVa11 ...
随机推荐
- jsp页面给字体加颜色
jsp页面给字体加颜色<span style="color:red">要加颜色的部分</span>
- Spring 使用介绍(八)—— 零配置(一)
一.概述 所谓零配置,并不是说一点配置都没有了,而是配置很少而已.通过约定来减少需要配置的数量,提高开发效率. 零配置实现主要有以下两种方式: 惯例优先原则:也称为约定大于配置(convention ...
- maven+Spring+SpringMVC+Hibernate快速搭建
目录结构: pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...
- jdk6使用WebSocket
pom.xml <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java- ...
- Tomcat的四种web应用部署方式详解
在Tomcat中有四种部署Web应用的方式,简要的概括分别是: (1)利用Tomcat自动部署 (2)利用控制台进行部署 (3)增加自定义的Web部署文件(%Tomcat_Home%\conf\Cat ...
- .net Json 反序列化时,属性带点
.net Json 反序列化时,属性带点 使用[JsonProperty("xxx.xxx")] static void Main(string[] args) { string ...
- Java8的Stream语法详解(转载)
1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and parallel agg ...
- 【cf849ABC】
849A - Odds and Ends 问能否将序列划分为奇数个长度奇数的奇数开头奇数结尾的子区间. 一开始想dp..不过没必要. const int N=201000; int n,a[N]; i ...
- ftp:linux下利用shell脚本添加虚拟用户并赋予权限
首先ftp配置应为虚拟用户登录模式 用户密码文本目录为/etc/vsftpd/vftpuser,代码如下: #!/bin/bash # ];then username=$ password=$ hom ...
- Android 9.png图片的制作方法
在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式".9.png".这种图片是用于Android开发的一种 ...