正式开始:第一篇论文笔记

关键名词梳理

  1. 信息增益(Information Gain):衡量特征帮结果消除不确定性的能力;信息增益越高,说明该特征越重要,能让信息更确定。
  2. 召回率(Recall):正类样本被模型检查出来的能力,例如10个正类样本能报出7个,recall就是0.7,主要衡量漏没漏
  3. 准确率(Precision):被检查出来的样本是否准确,如模型认为的7个正类样本是否真的是正类样本,如果全是,准确率100%,主要衡量准不准
  4. 宏平均F1分数(Macro-F1):F1 = 2 × (精确率 × 召回率) / (精确率 + 召回率),取值范围0~1,值越高,说明该类别预测的越好,Macro-F1关键在于每个类别权重相同,防止受某个类别样本量极少的干扰;而Micro-F1(微平均)在于按照数量分配权重。
  5. 平衡准确率(Balanced Accuracy):Balanced Acc=(TPR+TNR)/2​;其中,TPR是灵敏度,也是召回率;TNR是特异度,在多分类场景下,它等价于各类别召回率(Recall)的宏平均(Macro-Average Recall)
  6. AUROC(受试者工作特征曲线下面积): 随机抽一个正样本和一个负样本,正样本的分数比负样本高的概率(分数越高越正类);AUROC = 模型给正样本打出更高分数的概率
  7. TPR:真阳性率,也是召回率,阳性的样本里,被成功识别出来的比例
  8. FPR:假阳性率:阴性样本被误判成阳性的比例
  9. TNR:真阴性率:阴性样本被正确标记为阴性的比例
  10. FNR:假阴性率;True/False; Positive/Negative; Rate; 分别对应上述字母
  11. 宏平均:平等看待每一个类别;微平均:平等看待每一条样本
  12. Calibration(校准):描述的是模型输出的预测置信度(Predicted Probability)与实际观测频率(Empirical Frequency)之间的一致性程度;例如某个类别的频率只占50%,模型却说有70%的可能性,说明模型在撒谎,需要校准
  13. Abstention(拒识 / 弃权):拒绝回答问题,告知用户转为人类回答
  14. 消融实验:去掉某个因素,衡量基准性能的退化程度,从而得出该因素重要性;如果去掉后反而效果更好,说明原模型过拟合。
  15. ?视觉编码器:从高维原始像素空间到低维语义特征空间的非线性映射函数
  16. 输入分辨率:通常很小,如448*448,通常是将长边变到448,短边等比例变化,空白部分用灰阶填充
  17. HAM10000:2018年,维也纳医科大学10015张皮肤镜图像
  18. 疾病对照表(只有7种)

编号

缩写

全称

中文

数据量

1

akiec

Actinic keratoses / Bowen disease

日光性角化病 / 鲍温病

327

2

bcc

Basal cell carcinoma

基底细胞癌

514

3

bkl

Benign keratosis

良性角化病

1099

4

df

Dermatofibroma

皮肤纤维瘤

115

5

mel

Melanoma

黑色素瘤

1113

6

nv

Melanocytic nevus

黑色素痣

6705

7

vasc

Vascular lesion

血管病变

142

工作笔记

  1. Baseline图像分类方法:ResNet50
  2. 各疾病特征

疾病名称 (Disease)

外部特征 (External Features)

akiec (Actinic Keratoses / Bowen’s disease)

常表现为红色、粗糙、鳞屑性斑片或斑块,边界不清,表面可能有角化过度或结痂,多见于日光暴露部位。

bcc (Basal Cell Carcinoma)

典型表现为珍珠状、半透明丘疹或结节,常伴有中央溃疡(侵蚀性溃疡),边缘呈卷曲状,可见毛细血管扩张,好发于面部等曝光部位。

bkl (Benign Keratosis)

表现为褐色或黑色、边界清楚的斑块或丘疹,表面可能粗糙或有油脂感,类似脂溢性角化病,通常凸出于皮肤表面。

df (Dermatofibroma)

通常表现为坚实的褐色或红棕色小结节,表面光滑或略粗糙,按压时可见中央凹陷(凹陷征),常见于下肢。

mel (Melanoma)

常表现为不对称、边界不规则、颜色不均(可呈黑、褐、红、白、蓝等多种颜色)的色素性皮损,直径通常较大(>6mm),有增大或变化史。

nv (Melanocytic Nevus)

表现为对称、边界清晰、颜色均匀(通常为棕色或黑色)的色素性斑疹或丘疹,表面光滑或略隆起,多为良性,大小较稳定。

vasc (Vascular Lesions)

表现为红色、紫色或蓝色的斑疹、丘疹或结节,通常边界清晰,压之可褪色(血管瘤)或不褪色(血管角化瘤),形态多样。

  1. 模型训练划分

训练集:70%

验证集:15%

测试集:15%

训练病变数: 5229

验证病变数: 1120

测试病变数: 1121

总计: 7470

训练图片数: 7002

验证图片数: 1532

测试图片数: 1481

总图片数: 10015

  1. 20260724,训练了10个epochs,数据如下,虽然在第10次出现了更高的F1水平,但是7、8、9、10的训练,可以看出震荡,可见再加训练次数,收益有限,冻结权重模型在10个epochs附近已到达极限水平。

Epoch

Val Macro-F1

是否保存

1

0.4039

2

0.4571

3

0.4382

4

0.4397

5

0.4393

6

0.4509

7

0.4760

8

0.4627

9

0.4717

10

0.4897

Epoch 1

Train:

Loss 1.5082

Acc 0.5921

F1 0.3524

Val:

Loss 1.0923

Acc 0.6208

Balanced 0.4961

F1 0.4039

保存最佳模型

Epoch 2

Train:

Loss 1.1781

Acc 0.6390

F1 0.4475

Val:

Loss 0.8972

Acc 0.6678

Balanced 0.5354

F1 0.4571

保存最佳模型

Epoch 3

Train:

Loss 1.0770

Acc 0.6742

F1 0.4999

Val:

Loss 1.0274

Acc 0.6188

Balanced 0.5289

F1 0.4382

Epoch 4

Train:

Loss 0.9878

Acc 0.6798

F1 0.5176

Val:

Loss 0.9742

Acc 0.6312

Balanced 0.5708

F1 0.4397

Epoch 5

Train:

Loss 0.9558

Acc 0.6842

F1 0.5277

Val:

Loss 0.9793

Acc 0.6247

Balanced 0.5643

F1 0.4393

Epoch 6

Train:

Loss 0.8981

Acc 0.6965

F1 0.5513

Val:

Loss 0.9010

Acc 0.6573

Balanced 0.5703

F1 0.4509

Epoch 7

Train:

Loss 0.8721

Acc 0.7069

F1 0.5557

Val:

Loss 0.8433

Acc 0.6756

Balanced 0.5495

F1 0.4760

保存最佳模型

Epoch 8

Train:

Loss 0.8774

Acc 0.6982

F1 0.5566

Val:

Loss 0.9819

Acc 0.6305

Balanced 0.6169

F1 0.4627

Epoch 9

Train:

Loss 0.8516

Acc 0.7144

F1 0.5886

Val:

Loss 0.9413

Acc 0.6410

Balanced 0.5824

F1 0.4717

Epoch 10

Train:

Loss 0.8288

Acc 0.7081

F1 0.5839

Val:

Loss 0.9063

Acc 0.6547

Balanced 0.5590

F1 0.4897

保存最佳模型

  1. 20260724解冻后ResNet50模型

Fine-tune Epoch 1/10

Train Loss: 0.7481 | Accuracy: 0.7384 | Balanced Accuracy: 0.7445 | Macro-F1: 0.6350

Val Loss: 0.8641 | Accuracy: 0.6775 | Balanced Accuracy: 0.6068 | Macro-F1: 0.5127

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

已保存新的 Fine-tuned 最佳模型

Fine-tune Epoch 2/10

Train Loss: 0.6927 | Accuracy: 0.7495 | Balanced Accuracy: 0.7599 | Macro-F1: 0.6406

Val Loss: 0.8572 | Accuracy: 0.6821 | Balanced Accuracy: 0.6180 | Macro-F1: 0.5143

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

已保存新的 Fine-tuned 最佳模型

Fine-tune Epoch 3/10

Train Loss: 0.6311 | Accuracy: 0.7615 | Balanced Accuracy: 0.7922 | Macro-F1: 0.6736

Val Loss: 0.7926 | Accuracy: 0.7043 | Balanced Accuracy: 0.6249 | Macro-F1: 0.5389

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

已保存新的 Fine-tuned 最佳模型

Fine-tune Epoch 4/10

Train Loss: 0.5917 | Accuracy: 0.7702 | Balanced Accuracy: 0.8160 | Macro-F1: 0.6885

Val Loss: 0.7952 | Accuracy: 0.6932 | Balanced Accuracy: 0.6142 | Macro-F1: 0.5373

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

验证集 Macro-F1 未提升,连续 1 轮

Fine-tune Epoch 5/10

Train Loss: 0.5443 | Accuracy: 0.7808 | Balanced Accuracy: 0.8238 | Macro-F1: 0.7089

Val Loss: 0.7579 | Accuracy: 0.7167 | Balanced Accuracy: 0.6170 | Macro-F1: 0.5599

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

已保存新的 Fine-tuned 最佳模型

Fine-tune Epoch 6/10

Train Loss: 0.5308 | Accuracy: 0.7873 | Balanced Accuracy: 0.8183 | Macro-F1: 0.7098

Val Loss: 0.7753 | Accuracy: 0.7134 | Balanced Accuracy: 0.6475 | Macro-F1: 0.5550

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

验证集 Macro-F1 未提升,连续 1 轮

Fine-tune Epoch 7/10

Train Loss: 0.5055 | Accuracy: 0.7956 | Balanced Accuracy: 0.8370 | Macro-F1: 0.7307

Val Loss: 0.7939 | Accuracy: 0.6971 | Balanced Accuracy: 0.6259 | Macro-F1: 0.5554

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

验证集 Macro-F1 未提升,连续 2 轮

Fine-tune Epoch 8/10

Train Loss: 0.4569 | Accuracy: 0.8132 | Balanced Accuracy: 0.8611 | Macro-F1: 0.7644

Val Loss: 0.7504 | Accuracy: 0.7298 | Balanced Accuracy: 0.6289 | Macro-F1: 0.5803

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

已保存新的 Fine-tuned 最佳模型

Fine-tune Epoch 9/10

Train Loss: 0.4612 | Accuracy: 0.8062 | Balanced Accuracy: 0.8569 | Macro-F1: 0.7550

Val Loss: 0.7291 | Accuracy: 0.7317 | Balanced Accuracy: 0.6184 | Macro-F1: 0.5707

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

验证集 Macro-F1 未提升,连续 1 轮

Fine-tune Epoch 10/10

Train Loss: 0.4316 | Accuracy: 0.8191 | Balanced Accuracy: 0.8623 | Macro-F1: 0.7677

Val Loss: 0.7259 | Accuracy: 0.7356 | Balanced Accuracy: 0.6266 | Macro-F1: 0.5908

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

已保存新的 Fine-tuned 最佳模型

Fine-tune Epoch 11/15

Train Loss: 0.3894 | Accuracy: 0.8335 | Balanced Accuracy: 0.8807 | Macro-F1: 0.7984

Val Loss: 0.7231 | Accuracy: 0.7474 | Balanced Accuracy: 0.6374 | Macro-F1: 0.5935

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

已保存新的 Fine-tuned 最佳模型

Fine-tune Epoch 12/15

Train Loss: 0.3917 | Accuracy: 0.8369 | Balanced Accuracy: 0.8807 | Macro-F1: 0.7980

Val Loss: 0.7549 | Accuracy: 0.7258 | Balanced Accuracy: 0.6521 | Macro-F1: 0.5922

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

验证集 Macro-F1 未提升,连续 1 轮

Fine-tune Epoch 13/15

Train Loss: 0.3697 | Accuracy: 0.8342 | Balanced Accuracy: 0.8854 | Macro-F1: 0.7948

Val Loss: 0.7429 | Accuracy: 0.7258 | Balanced Accuracy: 0.6160 | Macro-F1: 0.5755

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

验证集 Macro-F1 未提升,连续 2 轮

Fine-tune Epoch 14/15

Train Loss: 0.3451 | Accuracy: 0.8428 | Balanced Accuracy: 0.8942 | Macro-F1: 0.8111

Val Loss: 0.7656 | Accuracy: 0.7278 | Balanced Accuracy: 0.6389 | Macro-F1: 0.5728

Learning Rate | layer4: 0.00001000 | fc: 0.00010000

验证集 Macro-F1 未提升,连续 3 轮

Fine-tune Epoch 15/15

Train Loss: 0.3165 | Accuracy: 0.8489 | Balanced Accuracy: 0.9080 | Macro-F1: 0.8242

Val Loss: 0.7164 | Accuracy: 0.7520 | Balanced Accuracy: 0.6453 | Macro-F1: 0.6095

Learning Rate | layer4: 0.00000500 | fc: 0.00005000

已保存新的 Fine-tuned 最佳模型

  1. 经过15epochs的训练,模型运行测试集校验结果

Test Loss: 0.6434045841742576

Test Accuracy: 0.7771775827143822

Test Balanced Accuracy: 0.6372819453123182

Test Macro-F1: 0.6083234281767498

就Macro-F1数据来看,整体与最佳模型验证集的值非常接近,表明训练过程没有出现过拟合

  1. 针对各疾病测试集的分类数据

precision recall f1-score support

akiec 0.4286 0.5870 0.4954 46

bcc 0.5976 0.6901 0.6405 71

bkl 0.5795 0.6726 0.6226 168

df 0.4286 0.4500 0.4390 20

mel 0.4913 0.5152 0.5030 165

nv 0.9223 0.8619 0.8911 992

vasc 0.6500 0.6842 0.6667 19

accuracy 0.7772 1481

macro avg 0.5854 0.6373 0.6083 1481

weighted avg 0.7944 0.7772 0.7841 1481

  1. 20260724 只告诉模型图片+疾病名称,不包含任何患者信息(年龄,性别,部位)的模型已训练完毕,该模型可被认为是下限

下一步开始训练给所有患者信息的模型,该模型将被认为是上限,最后agent调用的模型性能表现应介于两者之间

数据共包含下列信息

疾病:['scalp' 'ear' 'face' 'back' 'trunk' 'chest' 'upper extremity' 'abdomen'

'unknown' 'lower extremity' 'genital' 'neck' 'hand' 'foot' 'acral']

性别:['male' 'female' 'unknown']

由于神经网络较喜欢0~1的参数,因此我们将上述三者信息归一化

分别是:年龄:age = age/100 (如40岁->0.4),缺省数据使用平均值填充。

性别:male [1,0,0]; female [0,1,0];unknown [0,0,1]

疾病:15维向量,参考性别设计。

合计19维

因此在ResNet50 2048维视觉特征的基础上,再叠加19维,共计2067维数据进入分类器。

Epoch 1/20

Train:

Loss:

1.4755

Accuracy:

0.6404

Macro-F1:

0.4105

Validation:

Loss:

1.1038

Accuracy:

0.6253

Balanced Accuracy:

0.5612

Macro-F1:

0.4662

保存最佳 Image+Metadata 模型

Epoch 2/20

Train:

Loss:

0.8758

Accuracy:

0.7128

Macro-F1:

0.5992

Validation:

Loss:

0.8069

Accuracy:

0.7076

Balanced Accuracy:

0.6288

Macro-F1:

0.5200

保存最佳 Image+Metadata 模型

Epoch 3/20

Train:

Loss:

0.6682

Accuracy:

0.7579

Macro-F1:

0.6642

Validation:

Loss:

0.8659

Accuracy:

0.6821

Balanced Accuracy:

0.6428

Macro-F1:

0.5273

保存最佳 Image+Metadata 模型

Epoch 4/20

Train:

Loss:

0.5594

Accuracy:

0.7828

Macro-F1:

0.7096

Validation:

Loss:

0.7521

Accuracy:

0.7245

Balanced Accuracy:

0.5905

Macro-F1:

0.5551

保存最佳 Image+Metadata 模型

Epoch 5/20

Train:

Loss:

0.5483

Accuracy:

0.7749

Macro-F1:

0.7025

Validation:

Loss:

0.8503

Accuracy:

0.7063

Balanced Accuracy:

0.6255

Macro-F1:

0.5297

Epoch 6/20

Train:

Loss:

0.4810

Accuracy:

0.7866

Macro-F1:

0.7263

Validation:

Loss:

0.7575

Accuracy:

0.7063

Balanced Accuracy:

0.6266

Macro-F1:

0.5670

保存最佳 Image+Metadata 模型

Epoch 7/20

Train:

Loss:

0.4559

Accuracy:

0.7961

Macro-F1:

0.7418

Validation:

Loss:

0.8354

Accuracy:

0.6854

Balanced Accuracy:

0.6310

Macro-F1:

0.5624

Epoch 8/20

Train:

Loss:

0.4330

Accuracy:

0.8081

Macro-F1:

0.7520

Validation:

Loss:

0.7605

Accuracy:

0.7298

Balanced Accuracy:

0.6287

Macro-F1:

0.5805

保存最佳 Image+Metadata 模型

Epoch 9/20

Train:

Loss:

0.4050

Accuracy:

0.8163

Macro-F1:

0.7724

Validation:

Loss:

0.7413

Accuracy:

0.7474

Balanced Accuracy:

0.6293

Macro-F1:

0.5766

Epoch 10/20

Train:

Loss:

0.3859

Accuracy:

0.8193

Macro-F1:

0.7761

Validation:

Loss:

0.8207

Accuracy:

0.6919

Balanced Accuracy:

0.6241

Macro-F1:

0.5649

Epoch 11/20

Train:

Loss:

0.3832

Accuracy:

0.8266

Macro-F1:

0.7749

Validation:

Loss:

0.7330

Accuracy:

0.7480

Balanced Accuracy:

0.6399

Macro-F1:

0.5955

保存最佳 Image+Metadata 模型

Epoch 12/20

Train:

Loss:

0.3681

Accuracy:

0.8236

Macro-F1:

0.7903

Validation:

Loss:

0.9029

Accuracy:

0.6691

Balanced Accuracy:

0.6352

Macro-F1:

0.5756

Epoch 13/20

Train:

Loss:

0.3554

Accuracy:

0.8332

Macro-F1:

0.7919

Validation:

Loss:

0.8380

Accuracy:

0.7134

Balanced Accuracy:

0.6169

Macro-F1:

0.5702

Epoch 14/20

Train:

Loss:

0.3526

Accuracy:

0.8318

Macro-F1:

0.8021

Validation:

Loss:

0.9344

Accuracy:

0.6867

Balanced Accuracy:

0.6025

Macro-F1:

0.5411

Epoch 15/20

Train:

Loss:

0.3653

Accuracy:

0.8369

Macro-F1:

0.7941

Validation:

Loss:

0.7728

Accuracy:

0.7467

Balanced Accuracy:

0.6305

Macro-F1:

0.5903

Epoch 16/20

Train:

Loss:

0.3520

Accuracy:

0.8399

Macro-F1:

0.8017

Validation:

Loss:

0.8160

Accuracy:

0.7134

Balanced Accuracy:

0.6215

Macro-F1:

0.5713

Epoch 17/20

Train:

Loss:

0.3493

Accuracy:

0.8422

Macro-F1:

0.8119

Validation:

Loss:

0.7642

Accuracy:

0.7383

Balanced Accuracy:

0.6248

Macro-F1:

0.5913

Epoch 18/20

Train:

Loss:

0.3236

Accuracy:

0.8480

Macro-F1:

0.8073

Validation:

Loss:

0.7502

Accuracy:

0.7631

Balanced Accuracy:

0.6146

Macro-F1:

0.6028

保存最佳 Image+Metadata 模型

Epoch 19/20

Train:

Loss:

0.3163

Accuracy:

0.8425

Macro-F1:

0.8050

Validation:

Loss:

0.8062

Accuracy:

0.7448

Balanced Accuracy:

0.6030

Macro-F1:

0.5813

Epoch 20/20

Train:

Loss:

0.3249

Accuracy:

0.8478

Macro-F1:

0.8156

Validation:

Loss:

0.7941

Accuracy:

0.7428

Balanced Accuracy:

0.6319

Macro-F1:

0.5830

  1. 选取epoch18作为最后的模型结果,运行测试集,结果如下:

{'loss': 0.678672323963032, 'accuracy': 0.7798784604996624, 'balanced_accuracy': 0.6135215876495631, 'macro_f1': 0.5845429210957046, 'truths': [np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(3), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0)], 'preds': [np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(5), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(1), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(5), np.int64(2), np.int64(1), np.int64(2), np.int64(4), np.int64(2), np.int64(5), np.int64(5), np.int64(2), np.int64(2), np.int64(5), np.int64(2), np.int64(5), np.int64(2), np.int64(2), np.int64(2), np.int64(5), np.int64(5), np.int64(2), np.int64(2), np.int64(5), np.int64(2), np.int64(1), np.int64(4), np.int64(2), np.int64(5), np.int64(4), np.int64(2), np.int64(2), np.int64(2), np.int64(1), np.int64(4), np.int64(2), np.int64(4), np.int64(4), np.int64(4), np.int64(0), np.int64(2), np.int64(2), np.int64(4), np.int64(2), np.int64(0), np.int64(2), np.int64(2), np.int64(5), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(0), np.int64(0), np.int64(1), np.int64(2), np.int64(0), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(4), np.int64(2), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(0), np.int64(2), np.int64(2), np.int64(2), np.int64(4), np.int64(2), np.int64(2), np.int64(5), np.int64(4), np.int64(5), np.int64(0), np.int64(0), np.int64(4), np.int64(1), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(0), np.int64(4), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(5), np.int64(2), np.int64(3), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(3), np.int64(3), np.int64(2), np.int64(2), np.int64(5), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(5), np.int64(1), np.int64(3), np.int64(5), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(2), np.int64(3), np.int64(1), np.int64(1), np.int64(3), np.int64(0), np.int64(1), np.int64(3), np.int64(5), np.int64(0), np.int64(0), np.int64(3), np.int64(0), np.int64(0), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(2), np.int64(3), np.int64(3), np.int64(4), np.int64(4), np.int64(4), np.int64(0), np.int64(3), np.int64(1), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(2), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(3), np.int64(5), np.int64(2), np.int64(2), np.int64(4), np.int64(4), np.int64(5), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(4), np.int64(5), np.int64(0), np.int64(4), np.int64(2), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(3), np.int64(4), np.int64(2), np.int64(4), np.int64(4), np.int64(4), np.int64(2), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(0), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(2), np.int64(4), np.int64(0), np.int64(4), np.int64(4), np.int64(4), np.int64(0), np.int64(0), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(0), np.int64(4), np.int64(5), np.int64(4), np.int64(5), np.int64(2), np.int64(5), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(2), np.int64(5), np.int64(2), np.int64(2), np.int64(2), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(2), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(0), np.int64(2), np.int64(2), np.int64(4), np.int64(2), np.int64(0), np.int64(5), np.int64(2), np.int64(2), np.int64(4), np.int64(0), np.int64(4), np.int64(4), np.int64(2), np.int64(2), np.int64(0), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(2), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(2), np.int64(2), np.int64(2), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(2), np.int64(2), np.int64(4), np.int64(0), np.int64(2), np.int64(4), np.int64(4), np.int64(4), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(1), np.int64(6), np.int64(4), np.int64(4), np.int64(5), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(6), np.int64(5), np.int64(6), np.int64(6), np.int64(5), np.int64(6), np.int64(1), np.int64(0), np.int64(1), np.int64(1), np.int64(1), np.int64(2), np.int64(2), np.int64(0), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(2), np.int64(1), np.int64(4), np.int64(4), np.int64(5), np.int64(6), np.int64(4), np.int64(5), np.int64(5), np.int64(1), np.int64(1), np.int64(1), np.int64(5), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(0), np.int64(1), np.int64(2), np.int64(1), np.int64(0), np.int64(5), np.int64(5), np.int64(2), np.int64(1), np.int64(1), np.int64(0), np.int64(1), np.int64(1), np.int64(1), np.int64(5), np.int64(5), np.int64(1), np.int64(0), np.int64(2), np.int64(1), np.int64(1), np.int64(1), np.int64(3), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(5), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(0), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(1), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(3), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(6), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(3), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(3), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(1), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(3), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(1), np.int64(1), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(6), np.int64(2), np.int64(1), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(6), np.int64(4), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(6), np.int64(6), np.int64(5), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(6), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(1), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(6), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(2), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(1), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(4), np.int64(4), np.int64(3), np.int64(3), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(6), np.int64(4), np.int64(5), np.int64(2), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(1), np.int64(5), np.int64(5), np.int64(5), np.int64(1), np.int64(1), np.int64(5), np.int64(4), np.int64(2), np.int64(0), np.int64(2), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(2), np.int64(4), np.int64(2), np.int64(4), np.int64(5), np.int64(1), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(2), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(1), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(2), np.int64(1), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(4), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(2), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(4), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(5), np.int64(0), np.int64(4), np.int64(1), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(1), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(3), np.int64(1), np.int64(2), np.int64(1), np.int64(2), np.int64(0), np.int64(0), np.int64(1), np.int64(2), np.int64(2), np.int64(0), np.int64(2), np.int64(0), np.int64(1), np.int64(2), np.int64(1), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(0), np.int64(2), np.int64(0), np.int64(0), np.int64(0), np.int64(2)]}

分类别:

precision recall f1-score support

akiec 0.4603 0.6304 0.5321 46

bcc 0.5867 0.6197 0.6027 71

bkl 0.6034 0.6429 0.6225 168

df 0.2857 0.3000 0.2927 20

mel 0.4762 0.5455 0.5085 165

nv 0.9281 0.8720 0.8992 992

vasc 0.5909 0.6842 0.6341 19

accuracy 0.7799 1481

macro avg 0.5616 0.6135 0.5845 1481

weighted avg 0.7970 0.7799 0.7871 1481

参考文献

  1. HAM10000: A Large Collection of Multi-Source Dermatoscopic Images of Common Pigmented Skin Lesions