溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

發(fā)布時(shí)間:2021-12-23 16:14:33 來源:億速云 閱讀:223 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。

介紹

Airbnb是一個(gè)在線市場,允許人們將自己的房產(chǎn)或空余房間出租給客人。每預(yù)訂3位客人,收取12%和6%的傭金。

該公司自2009年成立以來,已從每年幫助2.1萬名客人找到住處,發(fā)展到每年幫助600萬人度假,目前在90個(gè)不同國家的34000個(gè)城市列出了驚人的80萬套房產(chǎn)。

我將使用Kaggle-newyorkcityairbnb開放數(shù)據(jù)集,嘗試用TensorFlow建立一個(gè)神經(jīng)網(wǎng)絡(luò)模型來進(jìn)行預(yù)測。

目標(biāo)是建立一個(gè)合適的機(jī)器學(xué)習(xí)模型,能夠預(yù)測未來住宿數(shù)據(jù)的價(jià)格。

我將展示我創(chuàng)建的Jupyter Notebook。你可以在GitHub上找到它:https://github.com/Timothy102/Tensorflow-for-Airbnb-Prices

加載數(shù)據(jù)

首先,讓我們看看如何加載數(shù)據(jù)。我們用wget直接從Kaggle網(wǎng)站上獲取數(shù)據(jù)。注意-o標(biāo)志表示文件名。

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

數(shù)據(jù)集應(yīng)該如下所示。共有48895行16列。

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

數(shù)據(jù)分析與預(yù)處理

Seaborn有一個(gè)非常簡潔的API,可以為各種數(shù)據(jù)繪制各種圖形。如果你對語法不太熟悉,可以查看本文:https://www.analyticsvidhya.com/blog/2019/09/comprehensive-data-visualization-guide-seaborn-python/

在pandas數(shù)據(jù)幀上使用corr之后,我們將其傳遞給一個(gè)heatmap函數(shù)。結(jié)果如下:

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

既然我們有經(jīng)度和經(jīng)度以及鄰里數(shù)據(jù),讓我們創(chuàng)建一個(gè)散點(diǎn)圖:

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

此外,我刪除了重復(fù)項(xiàng)和一些不必要的列,并填寫了“reviews_per_month”,因?yàn)樗刑嗟娜笔е?。?shù)據(jù)看起來像這樣。它有10列,沒有零值:

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

很好,對吧?

首先,電腦是做數(shù)字的。這就是為什么我們要把分類列轉(zhuǎn)換成一個(gè)one-hot編碼的向量。這是使用pandas的factorize方法完成的。你可以使用很多其他工具:

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

為了使損失函數(shù)保持在穩(wěn)定的范圍內(nèi),讓我們對一些數(shù)據(jù)進(jìn)行規(guī)范化,使平均值為0,標(biāo)準(zhǔn)差為1。

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

特征交叉

我們必須做出一個(gè)改變,這是一個(gè)必不可少的改變。為了使經(jīng)度和緯度與模型輸出相關(guān)聯(lián),我們必須創(chuàng)建一個(gè)特征交叉。下面的鏈接應(yīng)該為你提供足夠的背景知識(shí),使你能夠正確地感受到特征交叉:

  • https://developers.google.com/machine-learning/crash-course/feature-crosses/video-lecture

  • https://www.kaggle.com/vikramtiwari/feature-crosses-tensorflow-mlcc

我們的目標(biāo)是介紹經(jīng)緯度交叉,這是本書中最古老的技巧之一。如果我們只將這兩列作為值放入模型,它將假定這些值與輸出逐步相關(guān)。

相反,我們將使用特征交叉,這意味著我們將把經(jīng)度*經(jīng)度地圖分割成一個(gè)網(wǎng)格。幸運(yùn)的是,TensorFlow使它變得容易。

我通過迭代(max-min)/100,從而生成一個(gè)分布均勻的幀網(wǎng)格。

我用的是100×100網(wǎng)格:

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

本質(zhì)上,我們在這里所做的,是定義一個(gè)bucked列和前面定義的邊界,并創(chuàng)建一個(gè)DenseFeatures層,然后將傳遞給Sequential API。

如果你不熟悉Tensorflow語法,請檢查文檔:https://www.tensorflow.org/api_docs/python/tf/feature_column/

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

現(xiàn)在,終于,我們?yōu)槟P陀?xùn)練做好了準(zhǔn)備。除了拆分?jǐn)?shù)據(jù)部分,也就是說。

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

顯然,我們必須創(chuàng)建兩個(gè)數(shù)據(jù)集,一個(gè)包含所有數(shù)據(jù),另一個(gè)包含預(yù)測得分。由于數(shù)據(jù)大小不匹配,這可能會(huì)給我們的模型帶來問題,所以我決定截?cái)嗵L的數(shù)據(jù)。

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

創(chuàng)建模型

最后,建立了Keras序列模型。

我們使用Adam優(yōu)化器、均方誤差損失和兩個(gè)指標(biāo)來編譯模型。

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

此外,我們使用兩個(gè)回調(diào):

  • 早停,這是不言而喻的

  • 降低高原學(xué)習(xí)率。

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

經(jīng)過50個(gè)epoch的訓(xùn)練,batch大小為64,我們的模型是相當(dāng)成功的。

如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格

我們使用紐約市的AirBnB數(shù)據(jù)建立了一個(gè)全連接的神經(jīng)網(wǎng)絡(luò)來預(yù)測未來的價(jià)格。Pandas和seaborn使得可視化和檢查數(shù)據(jù)變得非常容易。我們在模型中引入了經(jīng)緯度交叉作為特征的思想。并且多虧了Kaggle的開放數(shù)據(jù)集,我們得到了一個(gè)完全可操作的機(jī)器學(xué)習(xí)模型。

關(guān)于如何用TensorFlow預(yù)測紐約市AirBnB租賃價(jià)格就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI