数据集和源代码放在资源里了
数据集和源代码

导入所需要的包

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as pltfrom sklearn.preprocessing import MinMaxScaler
from sklearn.linear_model import LinearRegression as LR
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] #显示中文标签

读取数据,并显示前五行

df = pd.read_csv('hoteldata.csv')
df.head()
  • 看特征数据类型以及是否包含缺失值
df.info()
  • 查看数值型变量数据情况
df.describe()

描述性分析

  • 绘制对数房价
df["对数房价"] = np.log(df["房价"])
plt.figsize = (8, 8)
plt.hist(df['对数房价'], bins = 30, edgecolor = 'k')
plt.xlabel('对数房价')
plt.ylabel('频数')
plt.title('对数房价直方图')
plt.show()

  • 绘制酒店房间类型箱线图
#酒店房间类型
plt.figure(figsize=(6,6))
sns.boxplot(x='房间类型',y='对数房价',data=df)
plt.title("酒店房间类型箱线图")
plt.show()

  • 绘制对数房价密度图
types = set(df["房间类型"])
figsize = (15, 10)
for i in types:subset = df[df["房间类型"] == i]sns.kdeplot(subset['对数房价'],label = i , shade = False, alpha = 0.4)
plt.xlabel('对数房价', size = 15)
plt.legend()
plt.title('对数房价密度图', size = 20)
plt.show()

#酒店区域因素分析
plt.figsize = (8, 8)
sns.boxplot(x='地区',y='对数房价',data=df)
plt.title("地区箱线图")
plt.show()

types = set(df["地区"])
figsize = (15, 10)
for i in types:subset = df[df["地区"] == i]sns.kdeplot(subset['对数房价'],label = i , shade = False, alpha = 0.4)
plt.xlabel('对数房价', size = 15)
plt.legend()
plt.title('Density Plot', size = 20)
plt.show()

#酒店装修时间因素分析
plt.figsize = (20, 8)
sns.boxplot(x='装修时间',y='对数房价',data=df)
plt.title("装修时间箱线图")
plt.show()

plt.figsize = (8, 8)
plt.hist(df['经度'], bins = 30, edgecolor = 'k')
plt.xlabel('经度')
plt.ylabel('频数')
plt.title('经度直方图')
plt.show()
plt.figsize = (8, 8)
plt.hist(df['纬度'], bins = 30, edgecolor = 'k')
plt.xlabel('纬度')
plt.ylabel('频数')
plt.title('纬度直方图')
plt.show()
plt.figsize = (8, 8)
plt.hist(df['评价数'], bins = 30, edgecolor = 'k')
plt.xlabel('评价数')
plt.ylabel('频数')
plt.title('评价数直方图')
plt.show()
plt.scatter(df['对数房价'],df["评价数"],color="green",alpha=0.5)
plt.xlabel('评价数')
plt.ylabel('对数房价')
plt.title("对数房价与评价数散点图")
plt.show()
grade=pd.DataFrame([df['卫生评分'],df['服务评分'],df['设施评分'],df['位置评分']]).T
correlation=grade.corr()
plt.subplots(figsize=(6, 6))
sns.heatmap(correlation, annot=True, square=True, cmap="Blues")
plt.show()

df["评分"] = (df["卫生评分"] + df["服务评分"] +df["设施评分"] +df["位置评分"])/4
plt.scatter(df['对数房价'],df["评分"],color="black",alpha=0.5)
plt.xlabel('对数房价')
plt.ylabel('评分')
plt.show()
plt.scatter(df['对数房价'],df["公司"],color="green",alpha=0.5)
plt.xlabel('公司')
plt.ylabel('对数房价')
plt.title("对数房价与公司散点图")
plt.show()
plt.scatter(df['对数房价'],df["出行住宿"],color="red",alpha=0.5)
plt.xlabel('出行住宿')
plt.ylabel('对数房价')
plt.title("对数房价与出行住宿散点图")
plt.show()
plt.scatter(df['对数房价'],df["校园生活"],color="purple",alpha=0.5)
plt.xlabel('校园生活')
plt.ylabel('对数房价')
plt.title("对数房价与校园生活散点图")
plt.show()
  • 数据分组和哑变量处理
df["装修时间"] = pd.cut(df["装修时间"],[0,2015,2020],labels = ["旧装修","新装修"])
df[["房间类型"]] = df[["房间类型"]].replace({'标准间': 0, '商务间': 1, '豪华套间': 2})
le = LabelEncoder()
df['地区'] = le.fit_transform(df['地区'])
df["装修时间"] = le.fit_transform(df["装修时间"])
df["评分"] = le.fit_transform(df["评分"])
  • 数据标准化
from sklearn import preprocessing
df['评分']=preprocessing.scale(df['评分'])
df['校园生活']=preprocessing.scale(df['校园生活'])
df['公司']=preprocessing.scale(df['公司'])
df['出行住宿']=preprocessing.scale(df['出行住宿'])
df['评价数']=preprocessing.scale(df['评价数'])

对数线性回归模型

features=['地区','房间类型','装修时间','评分','校园生活','公司','出行住宿',"评价数"]
X = df[features]
y = df[["对数房价"]]import statsmodels.api as sm
# 模型训练
model = sm.OLS(y, X).fit()
# 查看模型结果
model.summary()

# 提取回归系数
sm.OLS(y, X).fit().params
#R2
sm.OLS(y, X).fit().rsquared
# P值
sm.OLS(y, X).fit().pvalues
# 为了检验上述回归中是否存在严重的多重共线性,使用Python的VIF检验模块来验证:
from statsmodels.stats.outliers_influence import variance_inflation_factor
vif = [variance_inflation_factor(X.values, X.columns.get_loc(i)) for i in X.columns]
vif

数据分析实战-酒店价格因素分析-Python相关推荐

  1. Python数据分析实战(3)Python实现数据可视化

    文章目录 一.数据可视化介绍 二.matplotlib和pandas画图 1.matplotlib简介和简单使用 2.matplotlib常见作图类型 3.使用pandas画图 4.pandas中绘图 ...

  2. Python数据分析实战学习

    Python数据分析实战学习\displaystyle\boxed{Python数据分析实战学习}Python数据分析实战学习​ AprilJulyOctober2015AprilJulyOctobe ...

  3. Python数据分析实战:上海二手房价分析

    1 数据搜集 使用 urllib 库中的request 模块爬取赶集网发布的上海二手房信息,包括包括户型.面积.单价等,再使用BeautifulSoup 库解析爬取的HTML数据,最终将数据保存到CS ...

  4. Python数据分析实战基础 | 初识Pandas

    这是Python数据分析实战基础的第一篇内容,主要是和Pandas来个简单的邂逅.已经熟练掌握Pandas的同学,可以加快手速滑动浏览或者直接略过本文. 01  重要的前言 这段时间和一些做数据分析的 ...

  5. 《Python数据分析实战》day2: Pandas中取得某行或者是某列的一点思考

    今天看了<Python数据分析实战>这本书的第四章:Pandas的简介的部分,大概看了一半,在实践代码的时候发现了jupyter notebook提示warning,研究了一下有了一些自己 ...

  6. python数据录入_Re:从零开始的Python数据分析(实战篇)

    "数据分析",这是一个大家都不陌生的词.相信大家一定都知道Excel表格(至少学校里信息课肯定教过),它就是一个数据可视化分析工具.但我们今天所要使用的是大名鼎鼎的: Python ...

  7. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化

    python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...

  8. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化

    python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...

  9. python数据分析实战 fabio nelli百度云_Python数据分析实战 内利(Fabio Nelli),杜春晓 9787115432209...

    商品描述: 基本信息 书名:Python数据分析实战 定**价:59.00元 作者: 内利(Fabio Nelli) 著,杜春晓 译 出版社:人民邮电出版社 出版日期:2016-08-01 ISBN: ...

最新文章

  1. Android 数据存储 Room
  2. vue2.0读书笔记2-进阶
  3. Matlat计算符号导数
  4. ML之xgboost:利用xgboost算法(sklearn+7CrVa)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)
  5. Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)
  6. linux 命令解码空格,Shell 编程:Bash空格的那点事
  7. git rebase用法_Git入门实战
  8. web开发 java如何连接数据库并取得数据,实现 增,删,改,查
  9. java怎么打开之前的文件_如何在java中打开文件之前等待windows进程完成
  10. java jdbc 链接pg_使用PostgreSQL JDBC连接池
  11. lena.raw图片文件下载及打开方式
  12. Windows Server 2008 R2更新永恒之蓝 补丁包方法
  13. python不用模块随机列表_python不用库实现随机 如何用python实现随机抽取
  14. pandownload使用
  15. 使用yq工具合并两个yml文件
  16. 黑马畅购商城---9.Spring Security Oauth2 JWT授权
  17. html引用外部样式表的正确位置,在html文档中引用外部样式表的正确位置是什么...
  18. Win10彻底删除Windows.old文件夹
  19. 艾美捷重组蛋白酶K,无动物源/AF化学性质介绍
  20. 甜菜碱改善肥胖和代谢,肠道菌群是关键

热门文章

  1. 我不晓得该说什么也不晓得该怎样做了
  2. 如何退出root权限
  3. Excel VBA 入门demo,单元格json格式校验
  4. Linux调整随机端口范围(服务器启动失败 端口被占用)
  5. 服务器缓存返回状态码,浏览器缓存,状态码200与304
  6. Windows使用命令行快速批量删除大量文件
  7. 我这四个月干了些什么
  8. python的gif为正方形_python修改动图gif的尺寸
  9. php count 二维数组,PHP二维数组
  10. 安卓漏洞(apk破解总览)