Spaces:
Sleeping
Sleeping
Commit
·
28c7cae
1
Parent(s):
6074a2e
Added interactive plots
Browse files
app.py
CHANGED
|
@@ -163,15 +163,44 @@ def main():
|
|
| 163 |
|
| 164 |
st.write(f'Silhouette Score of K-Means: {silhouette_score(preprocessed_df, km_preds):2f}%')
|
| 165 |
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
|
| 176 |
url = 'https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html'
|
| 177 |
st.caption('For more details of the hyperparameters, check out the the documentation of KMeans [source](%s) of the dataset.' % url)
|
|
@@ -201,12 +230,24 @@ def main():
|
|
| 201 |
else:
|
| 202 |
st.error('Cannot calculate Silhouette Score with unscaled data.')
|
| 203 |
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 210 |
|
| 211 |
url = 'https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html'
|
| 212 |
st.caption('For more details of the hyperparameters, check out the the documentation of DBSCAN [source](%s) of the dataset.' % url)
|
|
@@ -244,13 +285,25 @@ def main():
|
|
| 244 |
st.write(f'Silhouette Score of Spectral Clustering: {silhouette_score(preprocessed_df, km_preds):2f}%')
|
| 245 |
else:
|
| 246 |
st.error('Cannot calculate Silhouette Score with unscaled data.')
|
|
|
|
|
|
|
| 247 |
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 254 |
|
| 255 |
url = 'https://scikit-learn.org/stable/modules/generated/sklearn.cluster.SpectralClustering.html'
|
| 256 |
st.caption('For more details of the hyperparameters, check out the the documentation of Spectral Clustering [source](%s) of the dataset.' % url)
|
|
|
|
| 163 |
|
| 164 |
st.write(f'Silhouette Score of K-Means: {silhouette_score(preprocessed_df, km_preds):2f}%')
|
| 165 |
|
| 166 |
+
tab1, tab2 = st.tabs(['Matplotlib Plot', 'Interactive Plot'])
|
| 167 |
+
|
| 168 |
+
with tab1:
|
| 169 |
+
fig, ax = plt.subplots(figsize=(10,7))
|
| 170 |
+
ax.set_title('KMeans Algorithm')
|
| 171 |
+
ax.scatter(km_centroids[:,0], km_centroids[:,1], s=200, c='black', alpha=0.5, label='Centroids')
|
| 172 |
+
scatter = ax.scatter(preprocessed_df[:,0], preprocessed_df[:,1], c=km_preds, s=20)
|
| 173 |
+
plt.scatter(input_data[0], input_data[1], s=150, c='red', marker='X', label='Input Data')
|
| 174 |
+
plt.legend()
|
| 175 |
+
plt.colorbar(scatter, ax=ax, label='Cluster Labels')
|
| 176 |
+
ax.grid(True)
|
| 177 |
+
st.pyplot(fig)
|
| 178 |
+
|
| 179 |
+
with tab2:
|
| 180 |
+
data_df = pd.DataFrame({
|
| 181 |
+
'x': preprocessed_df[:, 0],
|
| 182 |
+
'y': preprocessed_df[:, 1],
|
| 183 |
+
'Type': ['Data Point'] * len(preprocessed_df),
|
| 184 |
+
'Cluster': km_preds
|
| 185 |
+
})
|
| 186 |
+
|
| 187 |
+
centroids_df = pd.DataFrame({
|
| 188 |
+
'x': km_centroids[:, 0],
|
| 189 |
+
'y': km_centroids[:, 1],
|
| 190 |
+
'Type': ['Centroid'] * len(km_centroids),
|
| 191 |
+
'Cluster': ['Centroid'] * len(km_centroids)
|
| 192 |
+
})
|
| 193 |
+
|
| 194 |
+
input_df = pd.DataFrame({
|
| 195 |
+
'x': [input_data[0]],
|
| 196 |
+
'y': [input_data[1]],
|
| 197 |
+
'Type': ['Input Data'],
|
| 198 |
+
'Cluster': ['Input Data']
|
| 199 |
+
})
|
| 200 |
+
|
| 201 |
+
plot_df = pd.concat([data_df, centroids_df, input_df])
|
| 202 |
+
|
| 203 |
+
st.scatter_chart(plot_df, x='x', y='y', color='Cluster', size='Type')
|
| 204 |
|
| 205 |
url = 'https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html'
|
| 206 |
st.caption('For more details of the hyperparameters, check out the the documentation of KMeans [source](%s) of the dataset.' % url)
|
|
|
|
| 230 |
else:
|
| 231 |
st.error('Cannot calculate Silhouette Score with unscaled data.')
|
| 232 |
|
| 233 |
+
tab1, tab2 = st.tabs(['Matplotlib Plot', 'Interactive Plot'])
|
| 234 |
+
|
| 235 |
+
with tab1:
|
| 236 |
+
fig, ax = plt.subplots(figsize=(10,7))
|
| 237 |
+
ax.set_title('DBSCAN Model')
|
| 238 |
+
scatter = ax.scatter(preprocessed_df[:, 0], preprocessed_df[:, 1], s=20, c=dbs_labels, cmap='viridis')
|
| 239 |
+
ax.grid(True)
|
| 240 |
+
plt.colorbar(scatter, ax=ax, label='Cluster Labels')
|
| 241 |
+
st.pyplot(fig)
|
| 242 |
+
|
| 243 |
+
with tab2:
|
| 244 |
+
scatter_df = pd.DataFrame({
|
| 245 |
+
'x': preprocessed_df[:, 0],
|
| 246 |
+
'y': preprocessed_df[:, 1],
|
| 247 |
+
'Cluster': dbs_labels
|
| 248 |
+
})
|
| 249 |
+
|
| 250 |
+
st.scatter_chart(scatter_df, x='x', y='y', color='Cluster')
|
| 251 |
|
| 252 |
url = 'https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html'
|
| 253 |
st.caption('For more details of the hyperparameters, check out the the documentation of DBSCAN [source](%s) of the dataset.' % url)
|
|
|
|
| 285 |
st.write(f'Silhouette Score of Spectral Clustering: {silhouette_score(preprocessed_df, km_preds):2f}%')
|
| 286 |
else:
|
| 287 |
st.error('Cannot calculate Silhouette Score with unscaled data.')
|
| 288 |
+
|
| 289 |
+
tab1, tab2 = st.tabs(['Matplotlib Plot', 'Interactive Plot'])
|
| 290 |
|
| 291 |
+
with tab1:
|
| 292 |
+
fig, ax = plt.subplots(figsize=(10,7))
|
| 293 |
+
scatter = ax.scatter(preprocessed_df[:, 0], preprocessed_df[:, 1], c=sc_labels, s=20)
|
| 294 |
+
ax.set_title('Spectral Clustering')
|
| 295 |
+
plt.colorbar(scatter, ax=ax, label='Cluster Labels')
|
| 296 |
+
plt.grid(True)
|
| 297 |
+
st.pyplot(fig)
|
| 298 |
+
|
| 299 |
+
with tab2:
|
| 300 |
+
scatter_df = pd.DataFrame({
|
| 301 |
+
'x': preprocessed_df[:, 0],
|
| 302 |
+
'y': preprocessed_df[:, 1],
|
| 303 |
+
'Cluster': sc_labels
|
| 304 |
+
})
|
| 305 |
+
|
| 306 |
+
st.scatter_chart(scatter_df, x='x', y='y', color='Cluster')
|
| 307 |
|
| 308 |
url = 'https://scikit-learn.org/stable/modules/generated/sklearn.cluster.SpectralClustering.html'
|
| 309 |
st.caption('For more details of the hyperparameters, check out the the documentation of Spectral Clustering [source](%s) of the dataset.' % url)
|