比赛介绍

关于新人赛比赛介绍见链接:https://www.heywhale.com/home/competition/605c426d21e3f6003b56a920

处理过程

导入需要的包

import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier # knn
from sklearn.preprocessing import MinMaxScaler,StandardScaler #归一化和标准化
from sklearn.ensemble import RandomForestClassifier

读取数据

train=pd.read_csv("./data/训练集.csv")
test = pd.read_csv("./data/测试集 .csv")

处理数据

#训练数据
X=train.loc[:,["便利设施","洗手间数量","床的数量","床的类型","卧室数量","所在城市","房产类型","房型"]]
y=train.iloc[:,-1]
#测试数据
X_test=test.loc[:,["便利设施","洗手间数量","床的数量","床的类型","卧室数量","所在城市","房产类型","房型"]]
X_test.洗手间数量=X_test.洗手间数量.fillna(X_test.query("床的类型==4").洗手间数量.median())
X_test.床的数量=X_test.床的数量.fillna(X_test.query("床的类型==4").床的数量.median())
X_test.卧室数量=X_test.卧室数量.fillna(X_test.query("床的类型==4").卧室数量.median())
X.洗手间数量=X.洗手间数量.fillna(X.query("床的类型==4").洗手间数量.median())
X.床的数量=X.床的数量.fillna(X.query("床的类型==4").床的数量.median())
X.卧室数量=X.卧室数量.fillna(X.query("床的类型==4").卧室数量.median())
X["便利设施数量"]=X.便利设施.apply(lambda x:len(x.lstrip('{').rstrip('}').split(',')))
X_test['便利设施数量']=X_test.便利设施.apply(lambda x:len(x.lstrip('{').rstrip('}').split(',')))
X_test=X_test.drop("便利设施",axis=1)
X=X.drop("便利设施",axis=1)
#数据内存压缩
X.床的数量=X.床的数量.astype("int8")
X_test.床的数量=X_test.床的数量.astype("int8")
X.卧室数量=X.卧室数量.astype("int8")
X_test.卧室数量=X_test.卧室数量.astype("int8")
#映射数据
bins = [0,10,20,30,40,50,60,70,80,90]
labels = ["1-10","10-20","20-30","30-40","40-50","50-60","60-70","70-80","80-90"]
X['便利设施数量范围']=pd.cut(X["便利设施数量"],bins,labels=labels)
bins = [0,10,20,30,40,50,60,70,80,90]
labels = ["1-10","10-20","20-30","30-40","40-50","50-60","60-70","70-80","80-90"]
X_test['便利设施数量范围']=pd.cut(X_test["便利设施数量"],bins,labels=labels)
X_test=X_test.drop("便利设施数量",axis=1)
X=X.drop("便利设施数量",axis=1)
leCrime1 = preprocessing.LabelEncoder()
crime1 = leCrime1.fit_transform(X.便利设施数量范围)
X["便利设施数量范围"]=crime1
leCrime2 = preprocessing.LabelEncoder()
crime2 = leCrime2.fit_transform(X_test.便利设施数量范围)
X_test["便利设施数量范围"]=crime2
X.洗手间数量=X.洗手间数量.astype("int8")
X_test.洗手间数量=X_test.洗手间数量.astype("int8")
bins = [-1,20,30,40,50,60,70,80,90,100,110]
labels = ["0-20","20-30","30-40","40-50","50-60","60-70","70-80","80-90","90-100","100-110"]
y=pd.cut(y,bins,labels=labels)
leCrime2 = preprocessing.LabelEncoder()
crime2 = leCrime2.fit_transform(y)
y=crime2

模型预测

xtr,xte,ytr,yte=train_test_split(X,y,test_size=0.3)
#归一化
mm=MinMaxScaler()
#fit_transform=fit+transform
mm_train = mm.fit_transform(xtr)
mm_test=mm.transform(xte)
knn_model=KNeighborsClassifier(10).fit(mm_train,ytr)
knn_model.score(mm_train,ytr.astype("int")),knn_model.score(mm_test,yte)#标准化
std_ = StandardScaler() #标准化
#fit_transform=fit+transform
std_train = std_.fit_transform(xtr)
std_test=std_.transform(xte)
knn_model=KNeighborsClassifier(10).fit(std_train,ytr.astype("int"))
knn_model.score(std_train,ytr.astype("int")),knn_model.score(std_test,yte)
knn_model.predict(X_test)#决策树
dtree = DecisionTreeClassifier()
param_grid = dict(max_depth=range(2,7),max_leaf_nodes=range(5,15),min_impurity_split=[0.1,0.15,0.2])
gc_model = GridSearchCV(dtree,param_grid,cv=20,n_jobs=4).fit(xtr,ytr)gc_model.best_score_
gc_model.best_params_
gc_model.best_estimator_.score(xtr,ytr)
gc_model.best_estimator_.score(xte,yte)
gc_model.best_estimator_.predict(X_test)#随机森林
rfc = RandomForestClassifier()
param_grid = dict(n_estimators=[100,150,200],max_features=[0.7,0.8],max_depth=range(4,8),max_leaf_nodes=range(5,10),min_impurity_split=[0.05,0.1,0.15,0.2])
gc_model3 = GridSearchCV(rfc,param_grid,cv=3,n_jobs=6).fit(xtr,ytr)gc_model3.best_score_
gc_model3.best_estimator_.score(xtr,ytr),gc_model3.best_estimator_.score(xte,yte)

民宿价格预测分析(和鲸社区)相关推荐

  1. 预测分析·民宿价格预测【和鲸社区】

    预测分析·民宿价格预测 赛题&数据 赛题 民宿这一名词,是日语中"Minshuku"的音译.我国第一部关于民宿的旅游行业标准<旅游民宿基本要求与评价>已从201 ...

  2. 预测分析·民宿价格预测baseline

    大家好,我是小泽 预测分析·民宿价格预测比赛是和鲸社区与ChallengeHub联合举办的一场新手赛,本文旨在多角度构建特征工程来帮助选手快速比赛上手. 比赛链接 话不多说,直接开! 导入相关库 im ...

  3. 民宿管理系统的分析与设计

    目录 一.题目分析与设计 二.文档结构参考 三.评分要点及标准 四.文档目录 五.文档页数与字数 六.文档下载 一.题目分析与设计 民宿是一种不同于传统旅社.宾馆,且可以给游客带来温馨亲切的感觉的旅游 ...

  4. 第三届山东大数据-威海赛区-民宿空置预测-排行榜

  5. “当红”与“长红”的十字路口,民宿品牌怎么选?

    把消费者从酒店中"抢出来",成为出游的住宿首选,短租民宿用了近10年时间. 从最初的个案生活美学分享,到成为高增长的火热赛道,民宿行业不仅满足了日益旺盛的消费需求,还快速吸引了大量 ...

  6. 请回答2021,爱彼迎、木鸟民宿、途家民宿年度走心PK

    <中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要>提出,"打造一批文化特色鲜明的国家级旅游休闲城市和街区".这意味着未来城市休闲和城市周边度假 ...

  7. 途家、木鸟、爱彼迎:国内三大主流民宿预订平台测评

    随着民宿的普及与发展,越来越多的人在出行住宿的时候会优先考虑民宿.那么,国内现有的民宿预订平台中,哪个才是更适合的呢? 以下,笔者挑选了国内三家主流民宿预订平台,分别从房源量.下载数据.平台活动以及使 ...

  8. 踏青旅行必备的民宿指南,都在这些airbnb数据里了

    授权转载自极海纵横 ID:geohey_com 原文作者:天高地远 又到了万物复苏的季节,不知道你们有没有春游踏青的计划呢?身在office,心却在祖国的大好河山!比起快捷酒店,年轻人似乎对民宿青睐有 ...

  9. 木鸟民宿发布“中秋国庆出游住宿预测报告” 重庆、长沙最受欢迎

    9月14日消息,木鸟民宿对外发布<2020年中秋国庆假期出游住宿预测报告>(以下简称"报告"),国庆假期最受欢迎的十大热门城市分别是:重庆.长沙.成都.上海.西安.青岛 ...

最新文章

  1. extjs4mvc增删改查_asp.net下利用MVC模式实现Extjs表格增删改查
  2. 关于 TypeScript 内 constructor signature 的一些失败尝试
  3. How is BDOC hold parent removal action in ERP
  4. @ViewChild 的三种常用方法
  5. Spring集成–第1节– Hello World
  6. java设置表格列不可修改_Java DefaultTableModel使单元格不可编辑JTable
  7. 全球最囧的爱情测试.....
  8. xrdpdf卡片在哪可下载_暑假学习英语字母,就是这样简单(附可打印字母卡下载)...
  9. kaggle:PUBG Finish Placement Prediction
  10. megacli组建raid
  11. php计算字符串散列,php计算字符串的SHA-1散列函数sha1()
  12. 回忆2020年,这一年有你们真好~
  13. 计算机网络超详细笔记(五):网络层
  14. 如何快速获取CSDN积分
  15. MAC 下shell工具推荐 zentermlite
  16. 获取JSON文本(复嵌对象)转换指定JSON数据并Ajax实现数据初始可视化【附上echarts地图官方数据形式json文件数据】
  17. win10通过VMware使用教程
  18. 人脸对齐:Procrustes analysis 普氏分析
  19. Frank-Wolfe和梯度投影方法MATLAB实现
  20. 【转1】 OpenWrt Chaos Calmer 15.05使用mwan3单线多拨教程

热门文章

  1. extractall用法python_python tarfile模块基本使用
  2. 头文件和源文件的拼接
  3. 愿逝者安息.为生者祈福.
  4. Java JDBC基础 连接数据库 操作数据库
  5. 教宝宝使用水杯的正确方法
  6. 深度剖析PS通道磨皮法原理应用
  7. 4.8A可调USB限流开关芯片,带短路保护
  8. 路由表,IP世界里的“局部地图”
  9. Python 教程之 Pandas(10)—— 访问 series 的元素
  10. Codeforces Round #556 (Div. 1) B. Three Religions