← Về thư mục
📄 / / profiles / r-and-d / raw_evidence / scientific-agent-skills / skills / scikit-learn / references / common_workflows.md

Common Workflows

Two worked end-to-end workflows: building a classification model and performing a clustering analysis.

Common Workflows

Building a Classification Model

  1. Load and explore data python import pandas as pd df = pd.read_csv('data.csv') X = df.drop('target', axis=1) y = df['target']

  2. Split data with stratification python from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, stratify=y, random_state=42 )

  3. Create preprocessing pipeline ```python from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler from sklearn.compose import ColumnTransformer

# Handle numeric and categorical features separately preprocessor = ColumnTransformer([ ('num', StandardScaler(), numeric_features), ('cat', OneHotEncoder(), categorical_features) ]) ```

  1. Build complete pipeline python model = Pipeline([ ('preprocessor', preprocessor), ('classifier', RandomForestClassifier(random_state=42)) ])

  2. Tune hyperparameters ```python from sklearn.model_selection import GridSearchCV

param_grid = { 'classifier__n_estimators': [100, 200], 'classifier__max_depth': [10, 20, None] }

grid_search = GridSearchCV(model, param_grid, cv=5) grid_search.fit(X_train, y_train) ```

  1. Evaluate on test set ```python from sklearn.metrics import classification_report

best_model = grid_search.best_estimator_ y_pred = best_model.predict(X_test) print(classification_report(y_test, y_pred)) ```

Performing Clustering Analysis

  1. Preprocess data ```python from sklearn.preprocessing import StandardScaler

scaler = StandardScaler() X_scaled = scaler.fit_transform(X) ```

  1. Find optimal number of clusters ```python from sklearn.cluster import KMeans from sklearn.metrics import silhouette_score

scores = [] for k in range(2, 11): kmeans = KMeans(n_clusters=k, random_state=42) labels = kmeans.fit_predict(X_scaled) scores.append(silhouette_score(X_scaled, labels))

optimal_k = range(2, 11)[np.argmax(scores)] ```

  1. Apply clustering python model = KMeans(n_clusters=optimal_k, random_state=42) labels = model.fit_predict(X_scaled)

  2. Visualize with dimensionality reduction ```python from sklearn.decomposition import PCA

pca = PCA(n_components=2) X_2d = pca.fit_transform(X_scaled)

plt.scatter(X_2d[:, 0], X_2d[:, 1], c=labels, cmap='viridis') ```