关于人工智能:用TensorFlow预测纽约市AirBnB租赁价格

36次阅读

共计 1745 个字符,预计需要花费 5 分钟才能阅读完成。

作者 |TIMOTHY102
编译 |VK
起源 |Analytics Vidhya

介绍

Airbnb 是一个在线市场,容许人们将本人的房产或空余房间出租给客人。每预订 3 位客人,收取 12% 和 6% 的佣金。

该公司自 2009 年成立以来,已从每年帮忙 2.1 万名客人找到住处,倒退到每年帮忙 600 万人度假,目前在 90 个不同国家的 34000 个城市列出了惊人的 80 万套房产。

在本文中,我将应用 Kaggle-newyorkcityairbnb 凋谢数据集,尝试用 TensorFlow 建设一个神经网络模型来进行预测。

指标是建设一个适合的机器学习模型,可能预测将来住宿数据的价格。

在本文中,我将展现我创立的 Jupyter Notebook。你能够在 GitHub 上找到它:https://github.com/Timothy102…

加载数据

首先,让咱们看看如何加载数据。咱们用 wget 间接从 Kaggle 网站上获取数据。留神 - o 标记示意文件名。

数据集应该如下所示。共有 48895 行 16 列。

数据分析与预处理

Seaborn 有一个十分简洁的 API,能够为各种数据绘制各种图形。如果你对语法不太熟悉,能够查看本文:https://www.analyticsvidhya.c…

在 pandas 数据帧上应用 corr 之后,咱们将其传递给一个 heatmap 函数。后果如下:

既然咱们有经度和经度以及邻里数据,让咱们创立一个散点图:

此外,我删除了反复项和一些不必要的列,并填写了“reviews_per_month”,因为它有太多的缺失值。数据看起来像这样。它有 10 列,没有零值:

很好,对吧?

首先,电脑是做数字的。这就是为什么咱们要把分类列转换成一个 one-hot 编码的向量。这是应用 pandas 的 factorize 办法实现的。你能够应用很多其余工具:

为了使损失函数放弃在稳固的范畴内,让咱们对一些数据进行规范化,使平均值为 0,标准差为 1。

特色穿插

咱们必须做出一个扭转,这是一个必不可少的扭转。为了使经度和纬度与模型输入相关联,咱们必须创立一个特色穿插。上面的链接应该为你提供足够的背景常识,使你可能正确地感触到特色穿插:

  • https://developers.google.com…
  • https://www.kaggle.com/vikram…

咱们的指标是介绍经纬度穿插,这是本书中最古老的技巧之一。如果咱们只将这两列作为值放入模型,它将假设这些值与输入逐渐相干。

相同,咱们将应用特色穿插,这意味着咱们将把经度 * 经度地图宰割成一个网格。侥幸的是,TensorFlow 使它变得容易。

我通过迭代(max-min)/100,从而生成一个散布平均的帧网格。

我用的是 100×100 网格:

实质上,咱们在这里所做的,是定义一个 bucked 列和后面定义的边界,并创立一个 DenseFeatures 层,而后将传递给 Sequential API。

如果你不相熟 Tensorflow 语法,请查看文档:https://www.tensorflow.org/ap…

当初,终于,咱们为模型训练做好了筹备。除了拆分数据局部,也就是说。

显然,咱们必须创立两个数据集,一个蕴含所有数据,另一个蕴含预测得分。因为数据大小不匹配,这可能会给咱们的模型带来问题,所以我决定截断太长的数据。

创立模型

最初,建设了 Keras 序列模型。

咱们应用 Adam 优化器、均方误差损失和两个指标来编译模型。

此外,咱们应用两个回调:

  • 早停,这是显而易见的
  • 升高高原学习率。

通过 50 个 epoch 的训练,batch 大小为 64,咱们的模型是相当胜利的。

结尾

咱们应用纽约市的 AirBnB 数据建设了一个全连贯的神经网络来预测将来的价格。Pandas 和 seaborn 使得可视化和检查数据变得非常容易。咱们在模型中引入了经纬度穿插作为特色的思维。并且多亏了 Kaggle 的凋谢数据集,咱们失去了一个齐全可操作的机器学习模型。

原文链接:https://www.analyticsvidhya.c…

欢送关注磐创 AI 博客站:
http://panchuang.net/

sklearn 机器学习中文官网文档:
http://sklearn123.com/

欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/

正文完
 0