噓!別說話。

關於部落格

看著他隨著時間流逝而去。

關於圖:


因為有那片天空。





何処にですか、私の夢 。



沒有永遠的孤獨。

  • 41847

    累積人氣

  • 0

    今日人氣

    0

    訂閱人氣

當我回頭來看大學專題...

 這幾天其實都在讀碩論可能會用到的資料。

但就在昨天晚上,當我正在看一篇把KNN和MLP攪作伙然後用來分類心臟病症的論文時,
忽然想起了我的大學專題。

喔,對,那個讓現在的我覺得超級羞愧的大學專題...



基於實例的餐廳推薦系統。

當時表面上是寫著使用instance based learning,
現在回想起來根本沒什麼用到。
 Rule是怎麼歸納的?

人工去try覺得好像可以用就用上了。

當初在動機提到的問題呢?

其實最後根本不算有解決。

然後時間不夠,
至少程式寫出來而且還堪用,
好像還有那麼一回事。

但是現在要我重來,我也許會改變我的作法。



其實最早的問題是要解決不知道去哪裡吃飯這個問題。

如果完全隨機,系統隨到的你一定不會去。

當時老師提到,也許可以學習使用者的習慣。

現在想想,這個想法對大學生來講也許如雷貫耳,
但現在應該就不會這樣做了。

那個時候老師就一直要我們一定要收集使用者的回饋

一定要收集使用者的回饋

收集使用者的回饋

現在想起來,真是ㄊㄇㄉ太重要了。

但是當時我們不懂。

只是傻傻地覺得收集了就是讓下次更準。

嘛,沒錯。

不過當你的程式與網路結合就不會是這麼一回事了。

我想,理想的做法應該是要寫一個網頁介面,最好還有支援行動裝置的版本,
而自動去搜索使用者的位置。

然後,根據該名使用者過去的習慣,
還有過去曾經在這附近的人他們的選擇來推薦。

我想了一下,
最適合的大概是KNN和K-means吧!

方法如下:

首先,假設在長期的資料收集之下,
我們可以使用K-means之類的方法,
將餐廳們粗略分類。

也就是,當有一群餐廳們去的客群都是同樣的幾個人時,
我們就假定這群餐廳「就是這類人喜歡的調調」。
(這比什麼飯、麵、鍋貼、水餃……的準多了,當姐不知道想吃什麼的時候,我怎麼可能知道我想吃什麼種類。)

假設餐廳分成了r類。

接著假設今天小妹我第一次來到了中興大學,
然後中午餓了不知道要吃什麼鬼。

這個時候打開了系統。

小妹過去最常吃的是某幾間店,這幾間店最常出現的餐廳類型可能是rk類,而且價錢大概都在80元上下。

那麼,可以把這些化作一個向量。

x=(座標, 價錢, 餐廳類型)

接著,
我們可以搜尋一下過去曾經到過這裡的人,
他們的狀況。

那麼他們當時的狀況,應該也可以化作類似的向量。

這就是我們的training instances set T。
其中,T={t1, t2, t3..., tn},注意 t1 ~ tn 都是個向量。

而我們可以看一下這 t1 ~ tn 個例子中,哪些跟小妹我在座標空間中的"距離"最接近。

假設我們挑了K個跟我最接近的人,
這表示這些人過去也到過這裡,他們的預算照理說不會跟我差太多,而喜歡的用餐地點也差距不大。

然後從這些例子過去的用餐歷史中,挑出出現率最高的那幾間店。

好der,
假設小妹我選擇了其中一間,
而且決定要前往,
那麼系統就會記錄下我從這裡面查過哪幾間,
並且記錄下來。

並且在我前往的過程中,
開始重新訓練新的模型。
(重跑餐廳分類啊!增加這筆用餐紀錄進資料庫這樣。)

以後如果又有人來到這裡,
他的推薦結果應該會更準確。

這可以解決兩個問題。

第一個就是上述的,
ㄊㄇㄉ我都不知道我想吃什麼了,你還問我我想吃什麼種類?

所以系統不該問你你想吃什麼種類,而應該要從你過去挑餐廳的品味來猜測什麼店符合你的調調才對。

第二個則是,
有的時候地緣關係並不是如行政區所畫的這麼近,
這就像是如果我住在台中的南部,
說不定去彰化吃飯還比台中其他行政區近呢!

所以把使用者衛星定位座標考慮進去的話可以解決這個問題。

畢竟之前離你很近的人他到得了的地方,你也應該到得了。

頂多把交通工具也考慮進去就行了www


不過最大的問題,其實是資料的收集。


其實,應該可以從現在現有的美食推薦系統,向他們要資料吧?

如果有他們提供過去的資料,
也許一開始起步會方便很多。


當然,這裡還有另外一個問題。

我要用什麼方法來衡量我的推薦結果「好不好」?

最直觀的方法就是在推薦後,問使用者:「請問您還滿意這次的結果嗎?」

畢竟社群網路這一塊的東西,
好像很難用數學去衡量喔...

人的決定並沒有標準答案,
我怎麼知道在我推薦給你之前,
你實際上真正想要去吃的是什麼呢?


不過這都是過去的事情了。


我還是來想我的碩論要怎麼辦比較重要......ˊωˋ"
相簿設定
標籤設定
相簿狀態