Scikit
import wandb
wandb.init(project="visualize-sklearn")
# load and preprocess dataset
# train a model
# Visualize single plot
wandb.sklearn.plot_confusion_matrix(y_true, y_pred, labels)
# Visualize all classifier plots
wandb.sklearn.plot_classifier(clf, X_train, X_test, y_train, y_test, y_pred, y_probas, labels,
model_name='SVC', feature_names=None)
# All regression plots
wandb.sklearn.plot_regressor(reg, X_train, X_test, y_train, y_test, model_name='Ridge')
# All clustering plots
wandb.sklearn.plot_clusterer(kmeans, X_train, cluster_labels, labels=None, model_name='KMeans')

在不同长度的数据集上训练模型,并生成训练集和测试集的交叉验证分数与数据集大小的关系图。
wandb.sklearn.plot_learning_curve(model, X, y)
- model(clf或reg):传入一个拟合回归器或分类器
- X(数组型):数据集特征
- y(数组型):数据集标签。

ROC曲线绘制正例率(Y轴)和假正例率(X轴)。理想 分数为TPR = 1且FPR = 0,也就是左上角的那个点。通常我们计算ROC曲线下面积(AUC-ROC),AUC-ROC越大越好。
wandb.sklearn.plot_roc(y_true, y_probas, labels)
- y_true(数组型):测试组标签。
- y_probas(数组型):测试组预测概率。
- labels(列表型):目标变量(y)的命名标签。

绘制出训练组和测试组中目标类的分布图。有助于检测不平衡的类,并保证这些类不会对模型产生不相称的影响。
wandb.sklearn.plot_class_proportions(y_train, y_test, ['dog', 'cat', 'owl'])
- y_train(数组型):训练组标签。
- y_test(数组型):测试组标签。
- labels(列表型):目标变量(y)的命名标签。

计算不同阈值的精确率和召回率之间的权衡。曲线下方面积大,代表着召回率和精确率都很高,高精确率代表低假正例率,高召回率代表低假负例率。
两者分数都高,说明分类器返回的结果比较准确(高精确率),以及返回全部正类结果中的绝大部分(高召回率)。当分类非常不平衡时,PR曲线非常有用。
wandb.sklearn.plot_precision_recall(y_true, y_probas, labels)
- y_true(数组型):测试组标签。
- y_probas(数组型):测试组预测概率
- labels(列表型):目标变量(y)的命名标签。

评估并绘制分类任务中每项特征的重要性。仅适用于带有属性
featureimportances
的分类器,比如树。wandb.sklearn.plot_feature_importances(model, ['width', 'height, 'length'])
- model (clf):传入一个拟合分类器。
- feature_names(列表型):特征的名称。把特征的索引值换成对应的名称,会使图表更容易读懂

绘制分类器的预测概率被校准得如何以及如何校准未校准的分类器。比较基准逻辑回归模型、作为参数传入的模型以及其isotonic校准和sigmoid校准的估计预测概率。校准曲线离对角线越近越好。
转置的sigmoid样曲线代表过度拟合的分类器,而sigmoid样曲线代表欠拟合的分类器。通过训练模型的isotonic校准和sigmoid校准并比较其曲线,我们就可以判定模型是过度拟合还是欠拟合,确定以后,再判定哪种校准(isotonic还是sigmoid)有助于矫正。
wandb.sklearn.plot_calibration_curve(clf, X, y, 'RandomForestClassifier')
- model (clf):传入一个拟合分类器。
- X (数组型):训练集特征。
- y(数组型):训练集标签。
- model_name(字符串型):模型名称。默认为“Classifier”。

计算混淆矩阵来评估分类的准确率。可用来判定模型预测的质量、找到模型在预测中出错的模式。对角线代表着模型做对的预测,也就是说,在这条线上实际标签等于预测标签。
wandb.sklearn.plot_confusion_matrix(y_true, y_pred, labels)
- y_true(数组型):测试集标签。
- y_pred(数组型):测试集预测标签。
- labels(列表型):目标变量(y)的命名标签。

计算回归和分类算法的总结指标(如分类的F1、准确率、精确率和召回率,回归的均方误差(MSE)、平均绝对误差(MAE)、R2系数)。
wandb.sklearn.plot_summary_metrics(model, X_train, X_test, y_train, y_test)
- model (clf或reg):传入一个拟合的回归器或分类器。
- X (数组型):训练集特征。
- y(数组型):训练集标签。
- X_test(数组型):测试集特征。
- y_test(数组型):测试集标签。

测量并绘制出方差的百分比,方差的百分比是聚类数和训练时间的函数。可用来挑选最优聚类数。
wandb.sklearn.plot_elbow_curve(model, X_train)
- model (聚类器): 传入一个拟合聚类器
- X (数组): 训练集特征.

测量并绘制出一个聚类中每个点离相邻聚类中的点的接近程度。聚类的浓度与聚类的大小相对应。那条竖线代表着所有点的平均轮廓系数。
轮廓系数接近+1表示该样本远离相邻聚类。值为0表示该样本处于或非常接近两个相邻聚类的判定边界,负值表示这些样本可能被分配到了错误的聚类。
总而言之,我们希望全部轮廓聚类系数高于平均值(超过红线),尽可能接近1.我们还希望聚类的大小能够反映数据的底层模式。
wandb.sklearn.plot_silhouette(model, X_train, ['spam', 'not spam'])
- model (聚类器):传入一个拟合聚类器(clusterer)
- X (数组型):训练集特征。
- cluster_labels(列表型):聚类标签名称。把聚类索引值换成对应的名称,使图表更容易读懂。

通过库克距离测算数据点对回归模型的影响。影响严重倾斜的实例有可能是离群值。可用来检测离群值。
wandb.sklearn.plot_outlier_candidates(model, X, y)
- model(回归器):传入一个拟合分类器。
- X (数组型):训练集特征。
- y(数组型):训练集标签。

测量并绘制预测目标值(Y轴)与真实目标值和预测目标值之差(x轴)的关系,以及残差的分布。
一般来说,拟合良好的模型的残差应该是随机分布的,因为好的模型可以解释数据集中的大部分现象,除了随机误差。
wandb.sklearn.plot_residuals(model, X, y)
- model(回归器):传入一个拟合分类器。
- X (数组型):训练集特征
- y(数组型):训练集标签。
最近更新 1yr ago