Open inh2613 opened 3 years ago
행과행이 관련이 있는지 시각화하려면 위에 코드가 더 편할 것 같습니다.
대신 양이 많으니 colab에서도 잘 안먹히더라구요.
저는 k-means 로 해봤습니다.
from sklearn.cluster import KMeans
wcss=[]
for i in range(1,11):
kmeans = KMeans(n_clusters= i, init='k-means++', random_state=71)
kmeans.fit(train.drop('18~20_ride',axis=1).values)
wcss.append(kmeans.inertia_)
plt.plot(range(1,11), wcss)
plt.title('The Elbow Method')
plt.xlabel('no of clusters')
plt.ylabel('wcss')
plt.show()
kmeansmodel = KMeans(n_clusters=3, init='k-means++', random_state=71)
train['cluster']=kmeansmodel.fit_predict(train.drop('18~20_ride',axis=1).values)
test['cluster']=kmeansmodel.predict(test.values)
display(train.head())
display(test.head())
다른거 안건들이고 저것만 건드려서 앙상블 똑같이 해봤는데 성능은 떨어졌습니다.
비지도학습을 위한것이라 그런지 shap도 유용한 변수는 아니라고 했습니다.
시간면에서 k-means가 계층적 clustering 보다 빠르더라구요.
옆의 링크는 참고 링크입니다. 참고
from scipy.cluster.hierarchy import linkage,dendrogram from scipy.cluster.hierarchy import fcluster
linkage 인스턴스생성 Z = linkage(x_data, method='ward')
method 종류
덴드로그램 확인 fig = plt.figure(figsize=(25, 10)) dn = dendrogram(Z) plt.show()
구한 계층적 군집화에서 끊기 k=3 predict=fcluster(Z, k, criterion='maxclust')
criterion 종류
fcluster의 반환 값(predict)은 군집화 된 결과가 담긴 1D vector