Spaces:
Sleeping
Sleeping
| '''import pandas as pd | |
| from sklearn.cluster import KMeans | |
| import matplotlib.pyplot as plt | |
| import gradio as gr | |
| import tempfile | |
| def cluster_tourism(file, n_clusters): | |
| # Load CSV | |
| df = pd.read_csv(file) | |
| # Clustering | |
| features = df[['AvgMonthlyTourists', 'AvgTemp', 'Hotels']] | |
| kmeans = KMeans(n_clusters=n_clusters, random_state=42, n_init=10) | |
| df['Cluster'] = kmeans.fit_predict(features) | |
| # Save clustered CSV to a temporary file | |
| tmp_csv = tempfile.NamedTemporaryFile(delete=False, suffix=".csv") | |
| df.to_csv(tmp_csv.name, index=False) | |
| # Plot clusters | |
| plt.figure(figsize=(6,4)) | |
| for cluster in range(n_clusters): | |
| subset = df[df['Cluster'] == cluster] | |
| plt.scatter(subset['AvgMonthlyTourists'], subset['AvgTemp'], label=f'Cluster {cluster}') | |
| plt.xlabel('Avg Monthly Tourists') | |
| plt.ylabel('Avg Temp') | |
| plt.title('City Clusters') | |
| plt.legend() | |
| # Save plot to a temporary file | |
| tmp_plot = tempfile.NamedTemporaryFile(delete=False, suffix=".png") | |
| plt.savefig(tmp_plot.name) | |
| plt.close() | |
| return tmp_csv.name, tmp_plot.name | |
| demo = gr.Interface( | |
| fn=cluster_tourism, | |
| inputs=[ | |
| gr.File(file_types=[".csv"], type="filepath", label="Upload CSV"), | |
| gr.Slider(minimum=2, maximum=10, step=1, label="Number of Clusters") | |
| ], | |
| outputs=[ | |
| gr.File(label="CSV with Cluster Labels"), | |
| gr.Image(label="Cluster Plot") | |
| ], | |
| title="Tourlandia City Clustering", | |
| description="Upload a CSV of cities with AvgMonthlyTourists, AvgTemp, and Hotels. Choose number of clusters to group similar cities." | |
| ) | |
| demo.launch()''' | |
| import pandas as pd | |
| from sklearn.cluster import KMeans | |
| from sklearn.preprocessing import StandardScaler | |
| import matplotlib.pyplot as plt | |
| import gradio as gr | |
| import tempfile | |
| def cluster_tourism(file, n_clusters): | |
| # Load CSV | |
| df = pd.read_csv(file) | |
| # Features to cluster on | |
| features = df[['AvgMonthlyTourists', 'AvgTemp', 'Hotels']] | |
| # Standardize features | |
| scaler = StandardScaler() | |
| features_scaled = scaler.fit_transform(features) | |
| # KMeans clustering | |
| kmeans = KMeans(n_clusters=n_clusters, random_state=42, n_init=10) | |
| df['Cluster'] = kmeans.fit_predict(features_scaled) | |
| # Save clustered CSV to temporary file | |
| tmp_csv = tempfile.NamedTemporaryFile(delete=False, suffix=".csv") | |
| df.to_csv(tmp_csv.name, index=False) | |
| # Plot clusters | |
| plt.figure(figsize=(6,4)) | |
| for cluster in range(n_clusters): | |
| subset = df[df['Cluster'] == cluster] | |
| plt.scatter(subset['AvgMonthlyTourists'], subset['AvgTemp'], label=f'Cluster {cluster}') | |
| plt.xlabel('Avg Monthly Tourists') | |
| plt.ylabel('Avg Temp') | |
| plt.title('City Clusters') | |
| plt.legend() | |
| # Save plot to temporary file | |
| tmp_plot = tempfile.NamedTemporaryFile(delete=False, suffix=".png") | |
| plt.savefig(tmp_plot.name) | |
| plt.close() | |
| return tmp_csv.name, tmp_plot.name | |
| demo = gr.Interface( | |
| fn=cluster_tourism, | |
| inputs=[ | |
| gr.File(file_types=[".csv"], type="filepath", label="Upload CSV"), | |
| gr.Slider(minimum=2, maximum=10, step=1, label="Number of Clusters") | |
| ], | |
| outputs=[ | |
| gr.File(label="CSV with Cluster Labels"), | |
| gr.Image(label="Cluster Plot") | |
| ], | |
| title="City Clustering", | |
| description="Upload a CSV of cities with AvgMonthlyTourists, AvgTemp, and Hotels. Choose number of clusters to group similar cities." | |
| ) | |
| demo.launch() |