Kaggle比赛之『旧金山犯罪分类预测』 demo

import pandas as pd
import numpy as np

#用pandas载入csv训练数据,并解析第一列为日期格式
train=pd.read_csv(‘../input/train.csv‘, parse_dates = [‘Dates‘])
test=pd.read_csv(‘../input/test.csv‘, parse_dates = [‘Dates‘])
train

import pandas as pd
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn import preprocessing

#用LabelEncoder对不同的犯罪类型编号
leCrime = preprocessing.LabelEncoder()
crime = leCrime.fit_transform(train.Category)

#因子化星期几,街区,小时等特征
days = pd.get_dummies(train.DayOfWeek)
district = pd.get_dummies(train.PdDistrict)
hour = train.Dates.dt.hour
hour = pd.get_dummies(hour) 

#组合特征
trainData = pd.concat([hour, days, district], axis=1)
trainData[‘crime‘]=crime

#对于测试数据做同样的处理
days = pd.get_dummies(test.DayOfWeek)
district = pd.get_dummies(test.PdDistrict)

hour = test.Dates.dt.hour
hour = pd.get_dummies(hour) 

testData = pd.concat([hour, days, district], axis=1)
trainData

from sklearn.cross_validation import train_test_split
from sklearn import preprocessing
from sklearn.metrics import log_loss
from sklearn.naive_bayes import BernoulliNB
from sklearn.linear_model import LogisticRegression
import time

# 只取星期几和街区作为分类器输入特征
features = [‘Monday‘, ‘Tuesday‘, ‘Wednesday‘, ‘Thursday‘, ‘Friday‘, ‘Saturday‘, ‘Sunday‘, ‘BAYVIEW‘, ‘CENTRAL‘, ‘INGLESIDE‘, ‘MISSION‘,
 ‘NORTHERN‘, ‘PARK‘, ‘RICHMOND‘, ‘SOUTHERN‘, ‘TARAVAL‘, ‘TENDERLOIN‘]

# 分割训练集(3/5)和测试集(2/5)
training, validation = train_test_split(trainData, train_size=.60)

# 朴素贝叶斯建模,计算log_loss
model = BernoulliNB()
nbStart = time.time()
model.fit(training[features], training[‘crime‘])
nbCostTime = time.time() - nbStart
predicted = np.array(model.predict_proba(validation[features]))
print("朴素贝叶斯建模耗时 %f 秒" %(nbCostTime))
print("朴素贝叶斯log损失为 %f" %(log_loss(validation[‘crime‘], predicted)))

#逻辑回归建模,计算log_loss
model = LogisticRegression(C=.01)
lrStart= time.time()
model.fit(training[features], training[‘crime‘])
lrCostTime = time.time() - lrStart
predicted = np.array(model.predict_proba(validation[features]))
log_loss(validation[‘crime‘], predicted)
print("逻辑回归建模耗时 %f 秒" %(lrCostTime))
print("逻辑回归log损失为 %f" %(log_loss(validation[‘crime‘], predicted))) 

原文地址:https://www.cnblogs.com/hotsnow/p/9507834.html

时间: 2024-11-05 15:58:43

Kaggle比赛之『旧金山犯罪分类预测』 demo的相关文章

Kaggle比赛:从何着手?

介绍 参加Kaggle比赛,我必须有哪些技能呢? 你有没有面对过这样的问题?最少在我大二的时候,我有过.过去我仅仅想象Kaggle比赛的困难度,我就感觉害怕.这种恐惧跟我怕水的感觉相似.怕水,让我无法参加一些游泳课程.然而,后来,我得到的教训是只要你不真的跨进水里,你就不知道水有多深.相同的哲学对Kaggle也一样适用.没有试过之前不要下结论. Kaggle,数据科学的家园,为竞赛参与者,客户解决方案和招聘求职提供了一个全球性的平台.这是Kaggle的特殊吸引力,它提供的竞赛不仅让你站到不同的高

Kaggle比赛总结

做完 Kaggle 比赛已经快五个月了,今天来总结一下,为秋招做个准备. 题目要求:根据主办方提供的超过 4 天约 2 亿次的点击数据,建立预测模型预测用户是否会在点击移动应用广告后下载应用程序. 数据集特点: 数据量很大,有 2 亿条之多 数据是不平衡的,点击下载的数量远远小于没有点击下载的数量 不平衡数据集的处理思路: 一般对样本进行 上采样 和 下采样,顾名思义就是 多的样本少采一点,少的样本多采一点.极端情况下,就是样本太多的时候,就可以做增强学习,就是我给我的少样本增加噪音.但是由于我

读论文《BP改进算法在哮喘症状-证型分类预测中的应用》

总结: 一.研究内容 本文研究了CAL-BP(基于隐层的竞争学习与学习率的自适应的改进BP算法)在症状证型分类预测中的应用. 二.算法思想 1.隐层计算完各节点的误差后,对有最大误差的节点的权值进行正常修正,  而对其它单元的权值都向相反方向修正,用 δ表示隐层节点的权值修正量, 则修正量的调整公式具体为 2.每次算法迭代完以后,计算误差函数的值并与前一次的值进行比较,如果误差函数的值增大,     则代表过调了学习率,应在下一次迭代时以一定比率下调学习率 ],若误差函数的i+1值减小,    

数据回归分类预测的基本算法及python实现

数据回归分类预测的基本算法及python实现 关于数据的回归和分类以及分析预测.讨论分析几种比较基础的算法,也可以算作是比较简单的机器学习算法. 一.        KNN算法 邻近算法,可以用来做回归分析也可以用来做分类分析.主要思想是采取K个最为邻近的自变量来求取其应变量的平均值,从而做一个回归或者是分类.一般来说,K取值越大,output的var会更小,但bias相应会变大.反之,则可能会造成过拟合.因此,合理的选取K的值是KNN算法当中一个很重要的步骤. Advantages First

使用XGBoost实现多分类预测的实践

使用XGBoost实现多分类预测的实践代码 import pandas as pd import numpy as np import xgboost as xgb from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import KFold import matplotlib.pyplot as plt import seaborn as sns import gc ## load data t

『基础多项式算法总结』

在教练的要求下开始学习多项式算法了,不过因为不太会积分和求导先把多项式牛顿迭代,多项式指数函数,多项式幂函数,多项式快速幂等内容咕掉了,于是这一篇博客就是其他基础多项式内容的总结. Fast Fourier Transform \(FFT\),快速傅里叶变换,可以在\(O(n\log_2n)\)的时间内计算多项式乘法. 先回忆一下\(FFT\)的思路,首先是多项式的系数表达法,如果直接计算的话,时间复杂度是\(O(n^2)\)的,可以用分治算法优化到\(O(n^{log_23})\),通常没有其

『听歌识曲』Angular+Electron打造PC端网易云音乐

缘起峡谷 众所周知, web应用是可以打包成桌面应用的. 而我一直没太在意这个事儿, 直到某一天夜晚... 那天, 我独自在召唤师峡谷晃荡, 披荆斩麻, 享受着杀戮的快感. 那把比赛不是普通的排位, 是我赌上荣耀的一战, 因为 当时我已经0胜点了... 果不其然, 在这几位提款机队友的帮助下, 我成功拿下SVP. 随之而来的便是掉段的通知弹窗. 作为前端工程师, 我敏锐地注意到, 客户端弹窗的内容带着<br>标签. 纳尼!? LOL是Web写的? 这不可能! 一般客户端都是C++写的, 更何况

NHibernate框架与BLL+DAL+Model+Controller+UI 多层架构十分相似--『Spring.NET+NHibernate+泛型』概述、知识准备及介绍(一)

原文://http://blog.csdn.net/wb09100310/article/details/47271555 1. 概述 搭建了Spring.NET+NHibernate的一个数据查询系统.之前没用过这两个框架,也算是先学现买,在做完设计之 后花了一周搭建成功了.其中,还加上了我的一些改进思想,把DAO和BLL之中相似且常用的增删改查通过泛型T抽象到了DAO和BLL的父类中,其DAO 和BLL子类只需继承父类就拥有了这些方法.和之前的一个数据库表(视图)对应一个实体,一个实体对应一

老秦『十里桃花招商』Q849852

老秦『十里桃花招商』Q849852 十里桃花招商老秦是一个信誉至上的上级,对下级更是无私的教导 十里桃花招商老秦秉持著赚钱一起赚的心态! 十里桃花招商老秦把下级当做是兄弟.是亲人.更是最重要的工作伙伴! 十里桃花招商老秦在市场已经混了六年,信誉更是无庸置疑! 十里桃花招商老秦团队目前已有二十馀人,团队还在持续扩大中! 十里桃花招商老秦诚邀您一起加入我们! 跟著十里桃花招商老秦,即时知道市场动态!