作者|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/Tensorflow-for-Airbnb-Prices
加載資料
首先,讓我們看看如何加載資料,我們用wget直接從Kaggle網站上獲取資料,注意-o標志表示檔案名,

資料集應該如下所示,共有48895行16列,

資料分析與預處理
Seaborn有一個非常簡潔的API,可以為各種資料繪制各種圖形,如果你對語法不太熟悉,可以查看本文:https://www.analyticsvidhya.com/blog/2019/09/comprehensive-data-visualization-guide-seaborn-python/
在pandas資料幀上使用corr之后,我們將其傳遞給一個heatmap函式,結果如下:

既然我們有經度和經度以及鄰里資料,讓我們創建一個散點圖:

此外,我洗掉了重復項和一些不必要的列,并填寫了“reviews_per_month”,因為它有太多的缺失值,資料看起來像這樣,它有10列,沒有零值:

很好,對吧?
首先,電腦是做數字的,這就是為什么我們要把分類列轉換成一個one-hot編碼的向量,這是使用pandas的factorize方法完成的,你可以使用很多其他工具:

為了使損失函式保持在穩定的范圍內,讓我們對一些資料進行規范化,使平均值為0,標準差為1,

特征交叉
我們必須做出一個改變,這是一個必不可少的改變,為了使經度和緯度與模型輸出相關聯,我們必須創建一個特征交叉,下面的鏈接應該為你提供足夠的背景知識,使你能夠正確地感受到特征交叉:
- https://developers.google.com/machine-learning/crash-course/feature-crosses/video-lecture
- https://www.kaggle.com/vikramtiwari/feature-crosses-tensorflow-mlcc
我們的目標是介紹經緯度交叉,這是本書中最古老的技巧之一,如果我們只將這兩列作為值放入模型,它將假定這些值與輸出逐步相關,
相反,我們將使用特征交叉,這意味著我們將把經度*經度地圖分割成一個網格,幸運的是,TensorFlow使它變得容易,
我通過迭代(max-min)/100,從而生成一個分布均勻的幀網格,
我用的是100×100網格:

本質上,我們在這里所做的,是定義一個bucked列和前面定義的邊界,并創建一個DenseFeatures層,然后將傳遞給Sequential API,
如果你不熟悉Tensorflow語法,請檢查檔案:https://www.tensorflow.org/api_docs/python/tf/feature_column/

現在,終于,我們為模型訓練做好了準備,除了拆分資料部分,也就是說,

顯然,我們必須創建兩個資料集,一個包含所有資料,另一個包含預測得分,由于資料大小不匹配,這可能會給我們的模型帶來問題,所以我決定截斷太長的資料,

創建模型
最后,建立了Keras序列模型,
我們使用Adam優化器、均方誤差損失和兩個指標來編譯模型,

此外,我們使用兩個回呼:
-
早停,這是不言而喻的
-
降低高原學習率,

經過50個epoch的訓練,batch大小為64,我們的模型是相當成功的,

結尾
我們使用紐約市的AirBnB資料建立了一個全連接的神經網路來預測未來的價格,Pandas和seaborn使得可視化和檢查資料變得非常容易,我們在模型中引入了經緯度交叉作為特征的思想,并且多虧了Kaggle的開放資料集,我們得到了一個完全可操作的機器學習模型,
原文鏈接:https://www.analyticsvidhya.com/blog/2020/10/predicting-nyc-airbnb-rental-prices-tensorflow/
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方檔案:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/201768.html
標籤:其他
上一篇:權重不確定的概率線性回歸
