sklearn DBSCAN

480 阅读1分钟
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
data1 = pd.read_csv('lianjia1.csv', encoding='gbk')
data2 = pd.read_csv('lianjia2.csv', encoding='gbk')
data3 = pd.read_csv('lianjia3.csv', encoding='utf-8')
data4 = pd.read_csv('lianjia4.csv', encoding='utf-8')
data5 = pd.read_csv('lianjia5.csv', encoding='utf-8')
data6 = pd.read_csv('lianjia6.csv', encoding='utf-8')
data7 = pd.read_csv('lianjia7.csv', encoding='utf-8')
data = pd.concat([data1, data2, data3, data4, data5,data6,data7])
data.dropna(inplace= True)
data['cjdanjia'] = data.cjdanjia.str.replace('元/平','').astype(np.float32).map(lambda x : round(x/10000, 2))
data1 = data[data.cjxiaoqu.str.contains('龙锦苑东一区 3室2厅 124平')]
plt.scatter(range(1, len(data1) + 1), data1.cjdanjia)
<matplotlib.collections.PathCollection at 0x112a57c50>

from sklearn.cluster import KMeans
y_pred = KMeans(n_clusters=2).fit_predict(data1[['cjdanjia']])
plt.scatter(range(1, len(data1) + 1), data1.cjdanjia, c = y_pred)
<matplotlib.collections.PathCollection at 0x118491b70>

data2 = data[data.cjxiaoqu.str.contains('龙锦苑东五区 3室2厅 124平')]
y_pred2 = KMeans(n_clusters=2).fit_predict(data2[['cjdanjia']])
plt.scatter(range(1, len(data2) + 1), data2.cjdanjia, c = y_pred2)
<matplotlib.collections.PathCollection at 0x112ab6ba8>

from sklearn.cluster import DBSCAN
y_pred = DBSCAN().fit_predict(data2.cjdanjia.reshape(-1, 1))

plt.scatter(range(1, len(data2) + 1), data2.cjdanjia, c = y_pred)
/anaconda3/envs/py35/lib/python3.5/site-packages/ipykernel_launcher.py:1: FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead
  """Entry point for launching an IPython kernel.





<matplotlib.collections.PathCollection at 0x1184d5400>