您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何用TensorFlow預測紐約市AirBnB租賃價格,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
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的開放數據集,我們得到了一個完全可操作的機器學習模型。
關于如何用TensorFlow預測紐約市AirBnB租賃價格就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。