我可以使用哪种聚类模型来预测以下结果?

时间:2019-05-03 15:10:16

标签: machine-learning cluster-analysis data-science yelp

我的数据集中有三列。这是``比萨''类别下的餐厅列表,此数据来自yelp数据集。每个餐厅都有三列。纬度,经度,签到。我应该建立一个模型,在该模型中我应该能够预测应该在哪里开设新餐厅的坐标(纬度,经度),以使签到的次数可以很高。总共有4951行  

    checkins   latitude   longitude
0            2  33.394877 -111.600194
1            2  43.841217  -79.303936
2            1  40.442828  -80.186293
3            1  41.141631  -81.356603
4            1  40.434399  -79.922983
5            1  33.552870 -112.133712
6            1  43.686836  -79.293838
7            2  41.131282  -81.490180
8            1  40.500796  -79.943429
9           12  36.010086 -115.118656
10           2  41.484475  -81.921150
11           1  43.842450  -79.027990
12           1  43.724840  -79.289919
13           2  45.448630  -73.608719
14           1  45.577027  -73.330855
15           1  36.238059 -115.210341
16           1  33.623055 -112.339758
17           1  43.762768  -79.491417
18           1  43.708415  -79.475884
19           1  45.588257  -73.428926
20           4  41.152875  -81.358754
21           1  41.608833  -81.525020
22           1  41.425152  -81.896178
23           1  43.694716  -79.304879
24           1  40.442147  -79.956513
25           1  41.336466  -81.784790
26           1  33.231942 -111.721218
27           2  36.291436 -115.287016
28           2  33.641847 -111.995571
29           1  43.570217  -79.566431
...        ...        ...         ...

我尝试使用DBSCAN解决集群问题,并以下图结束。但是我对此毫无意义。我该如何进行下去,或者如何以其他方式解决该问题以获得结果?

import pandas as pd
from sklearn.cluster import DBSCAN
import numpy as np
import matplotlib.pyplot as plt
review=pd.read_csv('pizza_category.csv')
checkin=pd.read_csv('yelp_academic_dataset/yelp_checkin.csv')

final=pd.merge(review,checkin,on='business_id',how='inner')
final.dropna()
final=final.reset_index(drop=True)
X=final[['checkins']]
X['latitude']=final[['latitude']].astype(dtype=np.float64).values
X['longitude']=final[['longitude']].astype(dtype=np.float64).values
print(X)
arr=X.values
db = DBSCAN(eps=2,min_samples=5)
y_pred = db.fit_predict(arr)
plt.figure(figsize=(20,10))
plt.scatter(arr[:, 0], arr[:, 1], c=y_pred, cmap="plasma")
plt.xlabel("Feature 0")
plt.ylabel("Feature 1")

这是我得到的情节 enter image description here

1 个答案:

答案 0 :(得分:1)

这不是集群问题。

您想要做的是密度估算,您可以在此基础上根据以前的入住频率估算密度。