数据挖掘实战 —— 图像分类与蛋白质表达预测

本文原创,若引用,请注明

前言

两个实战案例说明:

  1. Assignment 1:图像分类任务 —— 基于 28×28 灰度图的二分类。
  2. 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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值