当前位置:   article > 正文

数据项目总结 - 租房数据分析(完整篇)

租房数据分析

 Datawhale干货 

作者:皮钱超,厦门大学,Datawhale成员

深圳租房数据分析完整篇

从2020年11月发表第一篇深圳租房数据分析的文章,到这篇基于深度学习框架Keras的建模分析和预测,在此谈谈3篇文章的特点:

1、第一篇:

写于2020年11月,笔者作为一名数据分析师,学习了Python、SQL、爬虫、可视化以及部分机器学习的常见算法和模型,所以在第一篇文章中的重点是:统计与可视化分析。看过文章的小伙伴应该都知道,里面出现了许多还算漂亮的可视化图表(下面是部分图)。

一图胜千言,从统计和可视化图表的角度能够很快速且直观地看到数据分布和变化趋势。文章中使用可视化库是Plotly,一个非常棒的动态可视化库,强烈推荐学习~

cfec97a5c0b3813711a55b6ca1e25a81.png

文章地址

https://mp.weixin.qq.com/s/DEsclUfdnmVqICiK5rM57Q

2、第二篇:

写于2022年3月,笔者仍然是一名数据分析师。从2020年末到2022年初,一年左右的时间,笔者接触和学习了更多的是机器学习的算法、特征工程以及模型的可解释性等知识点。

在这篇文章中,笔者花费了大量的工作来做10个字段的预处理和特征工程工作,重点是如何做编码处理,便于后续输入到不同的回归模型中,以及各种模型的对比。

最后,笔者对模型的可解释性进行了探索,主要基于目前一个流行的可解释库:SHAP。

SHAP将所有的特征都视为“贡献者”。 对于每个预测样本,模型都产生一个对应的预测值,SHAP value就是该样本中每个特征所分配到的数值

关于特征工程的学习,笔者推荐一本书:《特征工程入门与实践》。

5e02ef559b8135a84f52ff4314b8eb38.png

文章地址

https://mp.weixin.qq.com/s/iO47yo6IgYgw6xZ8W-8lbQ

3、第三篇(本篇)

写第3篇(也就是看到的这篇)的时候,笔者依旧是一名数据分析师。今年的学习重点转移到了深度学习和kaggle比赛,最近一段时间学习一些DL的基础和Keras框架对于分类和回归问题的建模,从网络模型搭建、编译、训练网络等步骤完成整个建模的基本过程。

DL的建模过程后面深入学习了之后,会对现有的模型进行下一步的优化!

ba1e9fd56d00d80d778d1be4da24a1c7.png

写在最后:3篇文章仅代表了笔者的一些学习经历和知识总结,关于文章的具体细节部分,如果大家有认为有更好的处理方式或者不恰当的地方,欢迎指出来一起学习讨论~

Datawhale后台回复 深圳 可下载租房数据

本文是针对深圳租房数据的第3次分析,主要包含数据预处理、采样处理、基于Keras的建模等:

cf96b56e9f4dada5db483ae3400a8008.png

导入库

  1. import numpy as np
  2. import pandas as pd
  3. import plotly.express as px
  4. import plotly.graph_objects as go
  5. import matplotlib.pyplot as plt
  6. import seaborn as sns
  7. # plt.style.use("fivethirtyeight")
  8. plt.style.use('ggplot')
  9. import sklearn.preprocessing as pre_processing
  10. from imblearn.over_sampling import SMOTE   
  11. from sklearn.preprocessing import StandardScaler,MinMaxScaler
  12. import tensorflow as tf
  13. from keras import models
  14. from keras import layers
  15. np.random.seed(123)
  16. pd.options.mode.chained_assignment = None

数据基本信息

读取数据

  1. df = pd.read_excel("leyoujia.xls")
  2. df.head()
e273a97e6db6e6950be4d0943668fa0a.png

数据shape

In [3]:

  1. # 数据形状
  2. df.shape

Out[3]:

(202012)

数据shape返回的是一个列表,第一个取值表示数据的行数,第二个是属性个数,即字段的多少

字段类型

In [4]:

  1. # 数据的字段类型
  2. df.dtypes

Out[4]:

大部分都是字符串类型,只有money,就是最终的预测值是数值型

  1. name           object
  2. layout         object
  3. location       object
  4. size           object
  5. sizeInside     object
  6. zhuangxiu      object
  7. numberFloor    object
  8. time           object
  9. zone           object
  10. position       object
  11. money           int64
  12. way            object
  13. dtype: object

In [5]:

  1. # 数据中的缺失值
  2. df.isnull().sum()

Out[5]:

  1. name           0
  2. layout         0
  3. location       0
  4. size           0
  5. sizeInside     0
  6. zhuangxiu      0
  7. numberFloor    0
  8. time           6  # 缺失值
  9. zone           0
  10. position       0
  11. money          0
  12. way            0
  13. dtype: int64

缺失值处理

找出缺失值

在time字段中存在缺失值,找出缺失值所在的行数据信息:

134a96d835188e40fd67c6d162c641ec.png

填充缺失值

缺失值的填充有多种方法:

  • 填充具体值

  • 填充现有数据的某个统计值,比如均值、众数等

  • 填充前后项的值等

本文直接在网上找到每个小区的具体时间进行填充:

In [7]:

  1. 2019 2003 2004  2019 2019 2020
  2. times = ["2019年""2003年""2004年""2019年""2019年""2020年"]
  3. # 通过对应的索引位置来填充缺失值
  4. for i in range(len(df0)):
  5.     df.iloc[df0.index.tolist()[i], 7] = times[i]

In [8]:

df.isnull().sum()

Out[8]:

填充之后发现没有缺失值:

  1. name           0
  2. layout         0
  3. location       0
  4. size           0
  5. sizeInside     0
  6. zhuangxiu      0
  7. numberFloor    0
  8. time         
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号