共计 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/