[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-8cdee01c-ea3c-4fd5-bc36-b7a8cdecb885":3,"$fKSTEjc8EJ-v42RoJdDG3J9qfoCFy_FCKsgTVAKJy9zg":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"8cdee01c-ea3c-4fd5-bc36-b7a8cdecb885","scikit-learn","使用scikit-learn进行Python机器学习。用于分类、回归、聚类、模型评估和机器学习管道。","cat_life_career","mod_other","sickn33,other","---\nname: scikit-learn\ndescription: Machine learning in Python with scikit-learn. Use for classification, regression, clustering, model evaluation, and ML pipelines.\nlicense: BSD-3-Clause license\nmetadata:\n    skill-author: K-Dense Inc.\nrisk: unknown\nsource: community\n---\n\n# Scikit-learn\n\n## Overview\n\nThis skill provides comprehensive guidance for machine learning tasks using scikit-learn, the industry-standard Python library for classical machine learning. Use this skill for classification, regression, clustering, dimensionality reduction, preprocessing, model evaluation, and building production-ready ML pipelines.\n\n## Installation\n\n```bash\n# Install scikit-learn using uv\nuv uv pip install scikit-learn\n\n# Optional: Install visualization dependencies\nuv uv pip install matplotlib seaborn\n\n# Commonly used with\nuv uv pip install pandas numpy\n```\n\n## When to Use This Skill\n\nUse the scikit-learn skill when:\n\n- Building classification or regression models\n- Performing clustering or dimensionality reduction\n- Preprocessing and transforming data for machine learning\n- Evaluating model performance with cross-validation\n- Tuning hyperparameters with grid or random search\n- Creating ML pipelines for production workflows\n- Comparing different algorithms for a task\n- Working with both structured (tabular) and text data\n- Need interpretable, classical machine learning approaches\n\n## Quick Start\n\n### Classification Example\n\n```python\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.metrics import classification_report\n\n# Split data\nX_train, X_test, y_train, y_test = train_test_split(\n    X, y, test_size=0.2, stratify=y, random_state=42\n)\n\n# Preprocess\nscaler = StandardScaler()\nX_train_scaled = scaler.fit_transform(X_train)\nX_test_scaled = scaler.transform(X_test)\n\n# Train model\nmodel = RandomForestClassifier(n_estimators=100, random_state=42)\nmodel.fit(X_train_scaled, y_train)\n\n# Evaluate\ny_pred = model.predict(X_test_scaled)\nprint(classification_report(y_test, y_pred))\n```\n\n### Complete Pipeline with Mixed Data\n\n```python\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.compose import ColumnTransformer\nfrom sklearn.preprocessing import StandardScaler, OneHotEncoder\nfrom sklearn.impute import SimpleImputer\nfrom sklearn.ensemble import GradientBoostingClassifier\n\n# Define feature types\nnumeric_features = ['age', 'income']\ncategorical_features = ['gender', 'occupation']\n\n# Create preprocessing pipelines\nnumeric_transformer = Pipeline([\n    ('imputer', SimpleImputer(strategy='median')),\n    ('scaler', StandardScaler())\n])\n\ncategorical_transformer = Pipeline([\n    ('imputer', SimpleImputer(strategy='most_frequent')),\n    ('onehot', OneHotEncoder(handle_unknown='ignore'))\n])\n\n# Combine transformers\npreprocessor = ColumnTransformer([\n    ('num', numeric_transformer, numeric_features),\n    ('cat', categorical_transformer, categorical_features)\n])\n\n# Full pipeline\nmodel = Pipeline([\n    ('preprocessor', preprocessor),\n    ('classifier', GradientBoostingClassifier(random_state=42))\n])\n\n# Fit and predict\nmodel.fit(X_train, y_train)\ny_pred = model.predict(X_test)\n```\n\n## Core Capabilities\n\n### 1. Supervised Learning\n\nComprehensive algorithms for classification and regression tasks.\n\n**Key algorithms:**\n- **Linear models**: Logistic Regression, Linear Regression, Ridge, Lasso, ElasticNet\n- **Tree-based**: Decision Trees, Random Forest, Gradient Boosting\n- **Support Vector Machines**: SVC, SVR with various kernels\n- **Ensemble methods**: AdaBoost, Voting, Stacking\n- **Neural Networks**: MLPClassifier, MLPRegressor\n- **Others**: Naive Bayes, K-Nearest Neighbors\n\n**When to use:**\n- Classification: Predicting discrete categories (spam detection, image classification, fraud detection)\n- Regression: Predicting continuous values (price prediction, demand forecasting)\n\n**See:** `references\u002Fsupervised_learning.md` for detailed algorithm documentation, parameters, and usage examples.\n\n### 2. Unsupervised Learning\n\nDiscover patterns in unlabeled data through clustering and dimensionality reduction.\n\n**Clustering algorithms:**\n- **Partition-based**: K-Means, MiniBatchKMeans\n- **Density-based**: DBSCAN, HDBSCAN, OPTICS\n- **Hierarchical**: AgglomerativeClustering\n- **Probabilistic**: Gaussian Mixture Models\n- **Others**: MeanShift, SpectralClustering, BIRCH\n\n**Dimensionality reduction:**\n- **Linear**: PCA, TruncatedSVD, NMF\n- **Manifold learning**: t-SNE, UMAP, Isomap, LLE\n- **Feature extraction**: FastICA, LatentDirichletAllocation\n\n**When to use:**\n- Customer segmentation, anomaly detection, data visualization\n- Reducing feature dimensions, exploratory data analysis\n- Topic modeling, image compression\n\n**See:** `references\u002Funsupervised_learning.md` for detailed documentation.\n\n### 3. Model Evaluation and Selection\n\nTools for robust model evaluation, cross-validation, and hyperparameter tuning.\n\n**Cross-validation strategies:**\n- KFold, StratifiedKFold (classification)\n- TimeSeriesSplit (temporal data)\n- GroupKFold (grouped samples)\n\n**Hyperparameter tuning:**\n- GridSearchCV (exhaustive search)\n- RandomizedSearchCV (random sampling)\n- HalvingGridSearchCV (successive halving)\n\n**Metrics:**\n- **Classification**: accuracy, precision, recall, F1-score, ROC AUC, confusion matrix\n- **Regression**: MSE, RMSE, MAE, R², MAPE\n- **Clustering**: silhouette score, Calinski-Harabasz, Davies-Bouldin\n\n**When to use:**\n- Comparing model performance objectively\n- Finding optimal hyperparameters\n- Preventing overfitting through cross-validation\n- Understanding model behavior with learning curves\n\n**See:** `references\u002Fmodel_evaluation.md` for comprehensive metrics and tuning strategies.\n\n### 4. Data Preprocessing\n\nTransform raw data into formats suitable for machine learning.\n\n**Scaling and normalization:**\n- StandardScaler (zero mean, unit variance)\n- MinMaxScaler (bounded range)\n- RobustScaler (robust to outliers)\n- Normalizer (sample-wise normalization)\n\n**Encoding categorical variables:**\n- OneHotEncoder (nominal categories)\n- OrdinalEncoder (ordered categories)\n- LabelEncoder (target encoding)\n\n**Handling missing values:**\n- SimpleImputer (mean, median, most frequent)\n- KNNImputer (k-nearest neighbors)\n- IterativeImputer (multivariate imputation)\n\n**Feature engineering:**\n- PolynomialFeatures (interaction terms)\n- KBinsDiscretizer (binning)\n- Feature selection (RFE, SelectKBest, SelectFromModel)\n\n**When to use:**\n- Before training any algorithm that requires scaled features (SVM, KNN, Neural Networks)\n- Converting categorical variables to numeric format\n- Handling missing data systematically\n- Creating non-linear features for linear models\n\n**See:** `references\u002Fpreprocessing.md` for detailed preprocessing techniques.\n\n### 5. Pipelines and Composition\n\nBuild reproducible, production-ready ML workflows.\n\n**Key components:**\n- **Pipeline**: Chain transformers and estimators sequentially\n- **ColumnTransformer**: Apply different preprocessing to different columns\n- **FeatureUnion**: Combine multiple transformers in parallel\n- **TransformedTargetRegressor**: Transform target variable\n\n**Benefits:**\n- Prevents data leakage in cross-validation\n- Simplifies code and improves maintainability\n- Enables joint hyperparameter tuning\n- Ensures consistency between training and prediction\n\n**When to use:**\n- Always use Pipelines for production workflows\n- When mixing numerical and categorical features (use ColumnTransformer)\n- When performing cross-validation with preprocessing steps\n- When hyperparameter tuning includes preprocessing parameters\n\n**See:** `references\u002Fpipelines_and_composition.md` for comprehensive pipeline patterns.\n\n## Example Scripts\n\n### Classification Pipeline\n\nRun a complete classification workflow with preprocessing, model comparison, hyperparameter tuning, and evaluation:\n\n```bash\npython scripts\u002Fclassification_pipeline.py\n```\n\nThis script demonstrates:\n- Handling mixed data types (numeric and categorical)\n- Model comparison using cross-validation\n- Hyperparameter tuning with GridSearchCV\n- Comprehensive evaluation with multiple metrics\n- Feature importance analysis\n\n### Clustering Analysis\n\nPerform clustering analysis with algorithm comparison and visualization:\n\n```bash\npython scripts\u002Fclustering_analysis.py\n```\n\nThis script demonstrates:\n- Finding optimal number of clusters (elbow method, silhouette analysis)\n- Comparing multiple clustering algorithms (K-Means, DBSCAN, Agglomerative, Gaussian Mixture)\n- Evaluating clustering quality without ground truth\n- Visualizing results with PCA projection\n\n## Reference Documentation\n\nThis skill includes comprehensive reference files for deep dives into specific topics:\n\n### Quick Reference\n**File:** `references\u002Fquick_reference.md`\n- Common import patterns and installation instructions\n- Quick workflow templates for common tasks\n- Algorithm selection cheat sheets\n- Common patterns and gotchas\n- Performance optimization tips\n\n### Supervised Learning\n**File:** `references\u002Fsupervised_learning.md`\n- Linear models (regression and classification)\n- Support Vector Machines\n- Decision Trees and ensemble methods\n- K-Nearest Neighbors, Naive Bayes, Neural Networks\n- Algorithm selection guide\n\n### Unsupervised Learning\n**File:** `references\u002Funsupervised_learning.md`\n- All clustering algorithms with parameters and use cases\n- Dimensionality reduction techniques\n- Outlier and novelty detection\n- Gaussian Mixture Models\n- Method selection guide\n\n### Model Evaluation\n**File:** `references\u002Fmodel_evaluation.md`\n- Cross-validation strategies\n- Hyperparameter tuning methods\n- Classification, regression, and clustering metrics\n- Learning and validation curves\n- Best practices for model selection\n\n### Preprocessing\n**File:** `references\u002Fpreprocessing.md`\n- Feature scaling and normalization\n- Encoding categorical variables\n- Missing value imputation\n- Feature engineering techniques\n- Custom transformers\n\n### Pipelines and Composition\n**File:** `references\u002Fpipelines_and_composition.md`\n- Pipeline construction and usage\n- ColumnTransformer for mixed data types\n- FeatureUnion for parallel transformations\n- Complete end-to-end examples\n- Best practices\n\n## Common Workflows\n\n### Building a Classification Model\n\n1. **Load and explore data**\n   ```python\n   import pandas as pd\n   df = pd.read_csv('data.csv')\n   X = df.drop('target', axis=1)\n   y = df['target']\n   ```\n\n2. **Split data with stratification**\n   ```python\n   from sklearn.model_selection import train_test_split\n   X_train, X_test, y_train, y_test = train_test_split(\n       X, y, test_size=0.2, stratify=y, random_state=42\n   )\n   ```\n\n3. **Create preprocessing pipeline**\n   ```python\n   from sklearn.pipeline import Pipeline\n   from sklearn.preprocessing import StandardScaler\n   from sklearn.compose import ColumnTransformer\n\n   # Handle numeric and categorical features separately\n   preprocessor = ColumnTransformer([\n       ('num', StandardScaler(), numeric_features),\n       ('cat', OneHotEncoder(), categorical_features)\n   ])\n   ```\n\n4. **Build complete pipeline**\n   ```python\n   model = Pipeline([\n       ('preprocessor', preprocessor),\n       ('classifier', RandomForestClassifier(random_state=42))\n   ])\n   ```\n\n5. **Tune hyperparameters**\n   ```python\n   from sklearn.model_selection import GridSearchCV\n\n   param_grid = {\n       'classifier__n_estimators': [100, 200],\n       'classifier__max_depth': [10, 20, None]\n   }\n\n   grid_search = GridSearchCV(model, param_grid, cv=5)\n   grid_search.fit(X_train, y_train)\n   ```\n\n6. **Evaluate on test set**\n   ```python\n   from sklearn.metrics import classification_report\n\n   best_model = grid_search.best_estimator_\n   y_pred = best_model.predict(X_test)\n   print(classification_report(y_test, y_pred))\n   ```\n\n### Performing Clustering Analysis\n\n1. **Preprocess data**\n   ```python\n   from sklearn.preprocessing import StandardScaler\n\n   scaler = StandardScaler()\n   X_scaled = scaler.fit_transform(X)\n   ```\n\n2. **Find optimal number of clusters**\n   ```python\n   from sklearn.cluster import KMeans\n   from sklearn.metrics import silhouette_score\n\n   scores = []\n   for k in range(2, 11):\n       kmeans = KMeans(n_clusters=k, random_state=42)\n       labels = kmeans.fit_predict(X_scaled)\n       scores.append(silhouette_score(X_scaled, labels))\n\n   optimal_k = range(2, 11)[np.argmax(scores)]\n   ```\n\n3. **Apply clustering**\n   ```python\n   model = KMeans(n_clusters=optimal_k, random_state=42)\n   labels = model.fit_predict(X_scaled)\n   ```\n\n4. **Visualize with dimensionality reduction**\n   ```python\n   from sklearn.decomposition import PCA\n\n   pca = PCA(n_components=2)\n   X_2d = pca.fit_transform(X_scaled)\n\n   plt.scatter(X_2d[:, 0], X_2d[:, 1], c=labels, cmap='viridis')\n   ```\n\n## Best Practices\n\n### Always Use Pipelines\nPipelines prevent data leakage and ensure consistency:\n```python\n# Good: Preprocessing in pipeline\npipeline = Pipeline([\n    ('scaler', StandardScaler()),\n    ('model', LogisticRegression())\n])\n\n# Bad: Preprocessing outside (can leak information)\nX_scaled = StandardScaler().fit_transform(X)\n```\n\n### Fit on Training Data Only\nNever fit on test data:\n```python\n# Good\nscaler = StandardScaler()\nX_train_scaled = scaler.fit_transform(X_train)\nX_test_scaled = scaler.transform(X_test)  # Only transform\n\n# Bad\nscaler = StandardScaler()\nX_all_scaled = scaler.fit_transform(np.vstack([X_train, X_test]))\n```\n\n### Use Stratified Splitting for Classification\nPreserve class distribution:\n```python\nX_train, X_test, y_train, y_test = train_test_split(\n    X, y, test_size=0.2, stratify=y, random_state=42\n)\n```\n\n### Set Random State for Reproducibility\n```python\nmodel = RandomForestClassifier(n_estimators=100, random_state=42)\n```\n\n### Choose Appropriate Metrics\n- Balanced data: Accuracy, F1-score\n- Imbalanced data: Precision, Recall, ROC AUC, Balanced Accuracy\n- Cost-sensitive: Define custom scorer\n\n### Scale Features When Required\nAlgorithms requiring feature scaling:\n- SVM, KNN, Neural Networks\n- PCA, Linear\u002FLogistic Regression with regularization\n- K-Means clustering\n\nAlgorithms not requiring scaling:\n- Tree-based models (Decision Trees, Random Forest, Gradient Boosting)\n- Naive Bayes\n\n## Troubleshooting Common Issues\n\n### ConvergenceWarning\n**Issue:** Model didn't converge\n**Solution:** Increase `max_iter` or scale features\n```python\nmodel = LogisticRegression(max_iter=1000)\n```\n\n### Poor Performance on Test Set\n**Issue:** Overfitting\n**Solution:** Use regularization, cross-validation, or simpler model\n```python\n# Add regularization\nmodel = Ridge(alpha=1.0)\n\n# Use cross-validation\nscores = cross_val_score(model, X, y, cv=5)\n```\n\n### Memory Error with Large Datasets\n**Solution:** Use algorithms designed for large data\n```python\n# Use SGD for large datasets\nfrom sklearn.linear_model import SGDClassifier\nmodel = SGDClassifier()\n\n# Or MiniBatchKMeans for clustering\nfrom sklearn.cluster import MiniBatchKMeans\nmodel = MiniBatchKMeans(n_clusters=8, batch_size=100)\n```\n\n## Additional Resources\n\n- Official Documentation: https:\u002F\u002Fscikit-learn.org\u002Fstable\u002F\n- User Guide: https:\u002F\u002Fscikit-learn.org\u002Fstable\u002Fuser_guide.html\n- API Reference: https:\u002F\u002Fscikit-learn.org\u002Fstable\u002Fapi\u002Findex.html\n- Examples Gallery: https:\u002F\u002Fscikit-learn.org\u002Fstable\u002Fauto_examples\u002Findex.html\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,177,1926,"2026-05-16 13:37:58",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"其他","other","mdi-page-next-outline","其他类型Skill",5,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"职场发展","career","mdi-briefcase-outline","面试准备、简历优化、职业规划",4,575,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"b224bc91-e51a-4ebf-a2a1-9e4c753bdca8","1.0.0","scikit-learn.zip",5358,"uploads\u002Fskills\u002F8cdee01c-ea3c-4fd5-bc36-b7a8cdecb885\u002Fscikit-learn.zip","d50d4176b40f9a8aa0b98c899ba46aa1d042cada26e45f1f3a74c08cebe74da3","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":15631}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]