本技能围绕 Python 经典机器学习库 scikit-learn 展开,用于处理表格数据的监督与无监督学习任务,并与 NumPy/pandas 工作流衔接。
用途与适用场景:为带标签数据构建分类模型(如垃圾邮件识别、疾病诊断);用回归预测连续值(如价格、剂量反应);对无标签数据聚类(如患者分层、基因表达分组);用 PCA、t-SNE 降维做可视化或特征工程;通过交叉验证评估和比较模型;用网格搜索、随机搜索系统调参;构建可复现的预处理与建模流水线。资料指出,深度学习任务(图像、NLP)应改用 pytorch 或 transformers,大规模梯度提升应改用 xgboost 或 lightgbm。
主要能力:数据预处理(StandardScaler、MinMaxScaler、OneHotEncoder、OrdinalEncoder、LabelEncoder、SimpleImputer);分类(LogisticRegression、RandomForestClassifier、GradientBoostingClassifier、SVC);回归(LinearRegression、Ridge、Lasso、ElasticNet、RandomForestRegressor);聚类(KMeans、DBSCAN、AgglomerativeClustering);降维(PCA、t-SNE);评估与选择(cross_val_score、GridSearchCV、StratifiedKFold、confusion_matrix、classification_report、silhouette_score);流水线(Pipeline、ColumnTransformer)。
使用方式:安装命令为 pip install scikit-learn numpy pandas matplotlib seaborn。基本流程为加载数据、train_test_split 划分、fit 训练、predict 预测、用指标评估;混合类型数据可在 ColumnTransformer 中分别对数值列做中位数填充与标准化、对类别列做众数填充与独热编码,再接入 Pipeline。模型可用 joblib.dump 与 joblib.load 保存和加载。
限制与注意事项:资料列出常见问题,如 ConvergenceWarning 需增大 max_iter 或标准化特征;训练准确率高而测试低通常为过拟合,可加正则、减小 max_depth、用交叉验证;测试集出现新类别需用 OneHotEncoder(handle_unknown='ignore');大数据内存不足可用 SGDClassifier/MiniBatchKMeans 增量学习;聚类效果差多因未缩放特征或 k 值不当;未 fit 就 predict 会触发 NotFittedError;需设置 random_state 保证结果可复现;参数网格大时 GridSearchCV 较慢,可改用 RandomizedSearchCV 或 HalvingGridSearchCV 并加 n_jobs=-1。具体版本、收费与平台支持等事实资料未提供。