本文原创,若引用,请注明
前言
两个实战案例说明:
- Assignment 1:图像分类任务 —— 基于 28×28 灰度图的二分类。
- Assignment 2:蛋白质表达预测 —— 使用组织切片图像预测蛋白质水平。
通过这两个案例,可以系统学习针对图像的分类和预测,包括 数据预处理 → 特征工程 → 模型训练 → 可视化 → 结果分析 的完整流程。
Part 1:Assignment 1 —— 图像分类
1.1 数据介绍
- 输入:28×28 灰度图(展开为 784 维向量)。
- 标签:+1 或 -1。
训练集:X_train, Y_train;测试集:X_test。
训练集中包含2386,614个单独的-1类和1类样本。测试集中包含3,000个无标签样本。分布显示出显著的不平衡,其中负类在数据集中占据主导地位。
这可能导致机器学习解决方案中出现潜在问题,包括模型预测存在偏见以及模式表征不足。由于数据不平衡,模型可能过度拟合多数类(-1),无论实际类别如何都更频繁地预测该类。
这可能导致模型评估中出现潜在问题,因为在不平衡数据集上,准确率等标准指标可能具有误导性。例如,一个将所有样本预测为’-1’的模型仍能达到约79.5%的准确率(3000个样本中正确预测2386个)。
为解决上述问题,在机器学习进展中应考虑以下方法:重采样、类权重分配以及算法选择(如随机森林或XGBoost等集成方法)。此外,在评估方法上也需要考虑:使用平衡指标(如F1分数、AUC-ROC或PRC-AUC)评估模型对两类的表现,并通过混淆矩阵观察模型区分正负类的有效性。
1.2 数据探索
如图1所示,正类(1)由手袋或靴子等具有清晰轮廓的独特图案代表。而负类(-1)包含衬衫、裤子、连衣裙及休闲鞋等多种物体,其图案呈现多样性。
def visualize_func(X, title, seed = 10):
np.random.seed(seed) # Set the random seed
random_samples = np.random.choice(X.shape[0], 12, replace = None)
# Plot the samples
for i, j in enumerate(random_samples):
plt.subplot(2, 6, i + 1)
plt.matshow(X[j].reshape(28, 28), cmap = 'gray', fignum = False) # Fignum = False, prevents the creation of a new figure.
plt.axis('off')
plt.suptitle(title, fontsize = 10, y = 0.9)
plt.show()
运行结果截图:


图1:训练集正类、负类数据
如图2所示,测试集的噪声比训练集更多。此外,图像更模糊且边缘不清晰。同时,图像亮度不均匀,部分区域过暗或过亮。这些挑战可能阻碍模型有效提取特征的能力,增加误分类风险,从而降低准确率。

图2:测试集数据示例
1.3 评估指标的选择
针对不同数据集,选择合适的评估指标也非常重要。对于此任务,采用AUC-PR作为主要指标并辅以F1分数作为参考最为理想,因为这是二元分类问题且数据集失衡且无固定阈值。AUC-PR能有效评估失衡数据集,因其更精确地反映模型区分类别的能力。此外,它还能评估模型在不同决策阈值下的整体表现。而F

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



