python岭回归、Lasso、随机森林、XGBoost、Keras神经网络、kmeans聚类链家租房数据地理可视化分析

最近我们被客户要求撰写关于租房数据分析的研究报告。利用 python 爬取链家网公开的租房数据

对租房信息进行分析,主要对房租相关特征进行分析,并搭建模型用于预测房租。

由Kaizong Ye,Liao Bao撰写

利用上海链家网站租房的公开信息,着重对月租进行数据分析和挖掘。

上海租赁数据

此数据来自 Lianjia.csv文件包含名称,租赁类型,床的数量,价格,经度,纬度,阳台,押金,公寓,描述,旅游,交通,独立浴室,家具,新房源,大小,方向,堤坝,电梯,停车场和便利设施信息。

属性:

名称:列表名称
类型:转租或全部租赁
床: 卧室号码
价格
经度/纬度: 坐标
阳台,押金(是否有押金政策),公寓,描述,旅游可用性,靠近交通,独立浴室,家具

新房源:NO-0,YES-1
面积:平方米
朝向:朝向窗户,南1,东南2,东-3,北4,西南-5,西-6,西北-7,东北8,未知-0
级别: 房源层级, 地下室-0, 低层(1-15)-1, 中层(15-25)-2, 高层(>25)-3
停车场:无停车场-0,额外收费-1,免费停车-2
设施: 设施数量

import pandas as pd

import numpy as np

import geopandas 

df = pd.read\_csv('liania\_sh.csv', sep =',', encoding='utf\_8\_sig', header=None)

df.head()

视频

Lasso回归、岭回归等正则化回归数学原理及R语言实例

探索见解

去bilibili观看

探索更多视频


视频

KMEANS均值聚类和层次聚类:R语言分析生活幸福质量系数可视化实例

探索见解

去bilibili观看

探索更多视频


视频

Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例

探索见解

去bilibili观看

探索更多视频


视频

LSTM神经网络架构和原理及其在Python中的预测应用

探索见解

去bilibili观看

探索更多视频

数据预处理

ETL处理,清理数据帧。

df_clean.head()

探索性分析 – 数据可视化

plt.figure(figsize=(8, 6))

sns.distplot(df_clean.price, bins=500, kde=True)

plt.xscale('log') # Log transform the price

读取地理数据


R语言线性回归和时间序列分析北京房价影响因素可视化案例

阅读文章



随时关注您喜欢的主题


plt.figure(figsize=(12, 12))

sns.heatmap(df_clean.corr(), square=True, annot=True, fmt = '.2f', cmap = 'vla

模型构建

尝试根据特征预测价格。

y = df\_clean.log\_price

X = df\_clean.iloc\[:, 1:\].drop(\['price', 'log\_price'\], axis=1)

岭回归模型

ridge = Ridge()

alphas = \[0.0001, 0.001, 0.001, 0.01, 0.1, 0.5, 1, 2, 3, 5, 10\]

Lasso回归

coef.sort_values(ascending=False).plot(kind = 'barh')

Random forest随机森林

rf\_cv.fit(X\_train, y_train)

XGBoost

xgb_model.loc\[30:,\['test-rmse-mean', 'train-rmse-mean'\]\].plot();
xgb\_cv.fit(X\_train, y_train)

Keras神经网络

model.add(Dense(1, kernel_initializer='normal'))

# Compile model

model.compile(loss='mean\_squared\_error', optimizer='Adam')

model.summary()

kmeans聚类数据

  kmeanModel = KMeans(n_clusters=k).fit(X) 

    kmeanModel.fit(X)     

    inertias.append(kmeanModel.inertia_) 

plt.plot(K, inertias, 'bx-')
gpd.plot(figsize=(12,10), alpha=0.3)

scatter\_map = plt.scatter(data=df\_clean, x='lon', y='lat', c='label', alpha=0.3, cmap='tab10', s=2)

可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds