This commit is contained in:
2023-09-19 20:54:19 +08:00
commit 31770491ed
34 changed files with 563 additions and 0 deletions

BIN
Q3/.DS_Store vendored Normal file

Binary file not shown.

52
Q3/code.py Normal file
View File

@ -0,0 +1,52 @@
# code.py
# Please use env.yaml to build corresponding conda env if you want to run this script
#
# author : deng
# date : 20230919
# platform: MacBook Pro 14 2021
import pandas
from sklearn import metrics
import matplotlib.pyplot as plt
if __name__ == '__main__':
csv_path = 'psudo_result.csv'
df = pandas.read_csv(csv_path)
df = df[:-1]
# Quick glance
print('Ground truth')
print(df['Ground truth'].value_counts())
print('Gender')
print(df['Gender'].value_counts())
print('Age')
plt.title('All patients')
plt.xlabel('age')
plt.ylabel('count')
df['Age'].hist(bins=20)
plt.show()
plt.title('Sick patients')
plt.xlabel('age')
plt.ylabel('count')
df[df['Ground truth'] == 'Sick']['Age'].hist(bins=20)
plt.show()
# Confusion Matrix
# threshold = 0.5
# gt = df['Ground truth']
# pred = ['Sick' if val >= threshold else 'No Sick'
# for val in df['AI pred']]
# print(metrics.classification_report(gt, pred))
# ROC curve
gt = [1 if val == 'Sick' else 0
for val in df['Ground truth']]
pred = df['AI pred']
fpr, tpr, thresholds = metrics.roc_curve(gt, pred, pos_label=1)
plt.title('ROC curve')
plt.plot(fpr, tpr)
plt.ylabel('True Positive Rate')
plt.xlabel('False Positive Rate')
plt.show()

71
Q3/env.yaml Normal file
View File

@ -0,0 +1,71 @@
name: Q3
channels:
- conda-forge
dependencies:
- brotli=1.1.0
- brotli-bin=1.1.0
- bzip2=1.0.8
- ca-certificates=2023.7.22
- certifi=2023.7.22
- contourpy=1.1.1
- cycler=0.11.0
- fonttools=4.42.1
- freetype=2.12.1
- joblib=1.3.2
- kiwisolver=1.4.5
- lcms2=2.15
- lerc=4.0.0
- libblas=3.9.0
- libbrotlicommon=1.1.0
- libbrotlidec=1.1.0
- libbrotlienc=1.1.0
- libcblas=3.9.0
- libcxx=16.0.6
- libdeflate=1.19
- libffi=3.4.2
- libgfortran=5.0.0
- libgfortran5=13.2.0
- libjpeg-turbo=2.1.5.1
- liblapack=3.9.0
- libopenblas=0.3.24
- libpng=1.6.39
- libsqlite=3.43.0
- libtiff=4.6.0
- libwebp-base=1.3.2
- libxcb=1.15
- libzlib=1.2.13
- llvm-openmp=16.0.6
- matplotlib=3.8.0
- matplotlib-base=3.8.0
- munkres=1.1.4
- ncurses=6.4
- numpy=1.26.0
- openjpeg=2.5.0
- openssl=3.1.2
- packaging=23.1
- pandas=2.1.0
- pillow=10.0.1
- pip=23.2.1
- pthread-stubs=0.4
- pyparsing=3.1.1
- python=3.10.12
- python-dateutil=2.8.2
- python-tzdata=2023.3
- python_abi=3.10
- pytz=2023.3.post1
- readline=8.2
- scikit-learn=1.3.0
- scipy=1.11.2
- setuptools=68.2.2
- six=1.16.0
- threadpoolctl=3.2.0
- tk=8.6.12
- tornado=6.3.3
- tzdata=2023c
- unicodedata2=15.0.0
- wheel=0.41.2
- xorg-libxau=1.0.11
- xorg-libxdmcp=1.1.3
- xz=5.2.6
- zstd=1.5.5
prefix: /Users/xiao_deng/miniforge3/envs/Q3

102
Q3/psudo_result.csv Normal file
View File

@ -0,0 +1,102 @@
Sample ID,Gender,Age,AI pred,Ground truth
S_0,Male,42.0,0.183843222651211,No Sick
S_1,Male,54.0,0.032451971485353635,No Sick
S_2,Male,27.0,0.1649091208860276,No Sick
S_3,Female,51.0,0.9838273079563034,Sick
S_4,Female,32.0,0.7008005948749091,No Sick
S_5,Female,50.0,0.04646539805577132,No Sick
S_6,Female,63.0,0.37605963432485756,No Sick
S_7,Male,48.0,0.5221502126827561,Sick
S_8,Female,43.0,0.6380703073440606,No Sick
S_9,Male,50.0,0.16000187268400592,No Sick
S_10,Female,33.0,0.8684964025015954,No Sick
S_11,Female,52.0,0.6292457724763052,No Sick
S_12,Male,49.0,0.4549646243576516,Sick
S_13,Female,26.0,0.5097453569913539,No Sick
S_14,Female,60.0,0.3337711914417254,No Sick
S_15,Female,48.0,0.019190399941885428,No Sick
S_16,Male,47.0,0.04086642173184299,No Sick
S_17,Female,54.0,0.18241359146528532,No Sick
S_18,Male,58.0,0.32089169346089924,No Sick
S_19,Female,36.0,0.413237627716878,Sick
S_20,Female,48.0,0.13062595790437023,No Sick
S_21,Female,56.0,0.29018011048552517,No Sick
S_22,Female,53.0,0.2555372095893874,No Sick
S_23,Female,44.0,0.09580993903210833,No Sick
S_24,Male,55.0,0.6877916599706746,Sick
S_25,Male,56.0,0.40153291103181854,Sick
S_26,Male,44.0,0.17088154472476824,No Sick
S_27,Male,60.0,0.28903419437712474,No Sick
S_28,Male,39.0,0.3059480568045402,No Sick
S_29,Female,51.0,0.30293016203624257,No Sick
S_30,Male,32.0,0.5986074572752382,Sick
S_31,Male,61.0,0.1679725784069874,No Sick
S_32,Female,20.0,0.19933363134841395,No Sick
S_33,Female,75.0,0.2936272223993208,No Sick
S_34,Female,60.0,0.38458266378064254,No Sick
S_35,Female,36.0,0.5476216653350379,No Sick
S_36,Female,22.0,0.2540285986407038,No Sick
S_37,Female,41.0,0.30688487550042554,No Sick
S_38,Male,58.0,0.010881451914966034,No Sick
S_39,Female,57.0,0.3141640693118162,No Sick
S_40,Female,57.0,0.19447009952931774,No Sick
S_41,Male,49.0,0.33065208227575404,Sick
S_42,Female,59.0,0.751020059639999,Sick
S_43,Male,73.0,0.2874468176061555,No Sick
S_44,Male,47.0,0.12089859681706382,No Sick
S_45,Male,66.0,0.17528475949731379,No Sick
S_46,Female,64.0,0.8819982427894725,No Sick
S_47,Female,42.0,0.5005003573463266,No Sick
S_48,Female,43.0,0.2745791003849961,No Sick
S_49,Female,45.0,0.4161238121442544,No Sick
S_50,Male,35.0,0.41528904708151504,No Sick
S_51,Female,52.0,0.8146647348503631,No Sick
S_52,Male,49.0,0.17604193457147554,No Sick
S_53,Male,53.0,0.05322796458244725,No Sick
S_54,Female,45.0,0.4299485265172557,No Sick
S_55,Female,63.0,0.35375757738991287,No Sick
S_56,Male,37.0,0.2164630863950512,No Sick
S_57,Female,43.0,0.7542813473217973,No Sick
S_58,Male,40.0,0.12277033509439539,No Sick
S_59,Male,57.0,0.028993766542943746,No Sick
S_60,Male,63.0,0.1840667841524664,No Sick
S_61,Female,42.0,0.9182713866681889,No Sick
S_62,Female,38.0,0.4997258327162861,No Sick
S_63,Female,27.0,0.057822477359941504,No Sick
S_64,Male,45.0,0.2869275808238832,No Sick
S_65,Male,56.0,0.27075663892334423,No Sick
S_66,Female,78.0,0.5147121232117046,Sick
S_67,Male,57.0,0.4303055422658295,Sick
S_68,Female,65.0,0.5790290855646982,No Sick
S_69,Male,34.0,0.4488264948240428,No Sick
S_70,Male,52.0,0.31922894933435064,No Sick
S_71,Male,48.0,0.2704984074393081,No Sick
S_72,Female,57.0,0.5318201811015301,No Sick
S_73,Female,45.0,0.915191370314399,No Sick
S_74,Male,33.0,0.16627710406505336,No Sick
S_75,Male,57.0,0.9744135322178493,Sick
S_76,Male,36.0,0.3890723811007448,No Sick
S_77,Male,50.0,0.4782644098424499,No Sick
S_78,Female,33.0,0.5124992859909004,Sick
S_79,Male,36.0,0.11506051247073344,No Sick
S_80,Male,62.0,0.3673796432900976,No Sick
S_81,Male,56.0,0.061334487122536044,No Sick
S_82,Female,50.0,0.5792648132889187,No Sick
S_83,Female,55.0,0.33218576134014133,No Sick
S_84,Male,39.0,0.32085392248494365,No Sick
S_85,Male,34.0,0.04450511997589546,No Sick
S_86,Male,67.0,0.15133055497828424,No Sick
S_87,Female,50.0,0.18709959213671942,No Sick
S_88,Male,53.0,0.10073701418285581,No Sick
S_89,Male,35.0,0.5110592056032592,Sick
S_90,Male,38.0,0.8793802677769047,Sick
S_91,Female,47.0,0.1247705954358479,No Sick
S_92,Female,51.0,0.23236933325127848,No Sick
S_93,Female,64.0,0.5361768277573149,No Sick
S_94,Male,39.0,0.7145348867998527,Sick
S_95,Female,49.0,0.8949969712274917,No Sick
S_96,Female,51.0,0.4008792149067575,No Sick
S_97,Female,51.0,0.37491428399612803,No Sick
S_98,Female,39.0,0.3545989884164421,No Sick
S_99,Male,51.0,0.26829780510576695,No Sick
,,,,
1 Sample ID Gender Age AI pred Ground truth
2 S_0 Male 42.0 0.183843222651211 No Sick
3 S_1 Male 54.0 0.032451971485353635 No Sick
4 S_2 Male 27.0 0.1649091208860276 No Sick
5 S_3 Female 51.0 0.9838273079563034 Sick
6 S_4 Female 32.0 0.7008005948749091 No Sick
7 S_5 Female 50.0 0.04646539805577132 No Sick
8 S_6 Female 63.0 0.37605963432485756 No Sick
9 S_7 Male 48.0 0.5221502126827561 Sick
10 S_8 Female 43.0 0.6380703073440606 No Sick
11 S_9 Male 50.0 0.16000187268400592 No Sick
12 S_10 Female 33.0 0.8684964025015954 No Sick
13 S_11 Female 52.0 0.6292457724763052 No Sick
14 S_12 Male 49.0 0.4549646243576516 Sick
15 S_13 Female 26.0 0.5097453569913539 No Sick
16 S_14 Female 60.0 0.3337711914417254 No Sick
17 S_15 Female 48.0 0.019190399941885428 No Sick
18 S_16 Male 47.0 0.04086642173184299 No Sick
19 S_17 Female 54.0 0.18241359146528532 No Sick
20 S_18 Male 58.0 0.32089169346089924 No Sick
21 S_19 Female 36.0 0.413237627716878 Sick
22 S_20 Female 48.0 0.13062595790437023 No Sick
23 S_21 Female 56.0 0.29018011048552517 No Sick
24 S_22 Female 53.0 0.2555372095893874 No Sick
25 S_23 Female 44.0 0.09580993903210833 No Sick
26 S_24 Male 55.0 0.6877916599706746 Sick
27 S_25 Male 56.0 0.40153291103181854 Sick
28 S_26 Male 44.0 0.17088154472476824 No Sick
29 S_27 Male 60.0 0.28903419437712474 No Sick
30 S_28 Male 39.0 0.3059480568045402 No Sick
31 S_29 Female 51.0 0.30293016203624257 No Sick
32 S_30 Male 32.0 0.5986074572752382 Sick
33 S_31 Male 61.0 0.1679725784069874 No Sick
34 S_32 Female 20.0 0.19933363134841395 No Sick
35 S_33 Female 75.0 0.2936272223993208 No Sick
36 S_34 Female 60.0 0.38458266378064254 No Sick
37 S_35 Female 36.0 0.5476216653350379 No Sick
38 S_36 Female 22.0 0.2540285986407038 No Sick
39 S_37 Female 41.0 0.30688487550042554 No Sick
40 S_38 Male 58.0 0.010881451914966034 No Sick
41 S_39 Female 57.0 0.3141640693118162 No Sick
42 S_40 Female 57.0 0.19447009952931774 No Sick
43 S_41 Male 49.0 0.33065208227575404 Sick
44 S_42 Female 59.0 0.751020059639999 Sick
45 S_43 Male 73.0 0.2874468176061555 No Sick
46 S_44 Male 47.0 0.12089859681706382 No Sick
47 S_45 Male 66.0 0.17528475949731379 No Sick
48 S_46 Female 64.0 0.8819982427894725 No Sick
49 S_47 Female 42.0 0.5005003573463266 No Sick
50 S_48 Female 43.0 0.2745791003849961 No Sick
51 S_49 Female 45.0 0.4161238121442544 No Sick
52 S_50 Male 35.0 0.41528904708151504 No Sick
53 S_51 Female 52.0 0.8146647348503631 No Sick
54 S_52 Male 49.0 0.17604193457147554 No Sick
55 S_53 Male 53.0 0.05322796458244725 No Sick
56 S_54 Female 45.0 0.4299485265172557 No Sick
57 S_55 Female 63.0 0.35375757738991287 No Sick
58 S_56 Male 37.0 0.2164630863950512 No Sick
59 S_57 Female 43.0 0.7542813473217973 No Sick
60 S_58 Male 40.0 0.12277033509439539 No Sick
61 S_59 Male 57.0 0.028993766542943746 No Sick
62 S_60 Male 63.0 0.1840667841524664 No Sick
63 S_61 Female 42.0 0.9182713866681889 No Sick
64 S_62 Female 38.0 0.4997258327162861 No Sick
65 S_63 Female 27.0 0.057822477359941504 No Sick
66 S_64 Male 45.0 0.2869275808238832 No Sick
67 S_65 Male 56.0 0.27075663892334423 No Sick
68 S_66 Female 78.0 0.5147121232117046 Sick
69 S_67 Male 57.0 0.4303055422658295 Sick
70 S_68 Female 65.0 0.5790290855646982 No Sick
71 S_69 Male 34.0 0.4488264948240428 No Sick
72 S_70 Male 52.0 0.31922894933435064 No Sick
73 S_71 Male 48.0 0.2704984074393081 No Sick
74 S_72 Female 57.0 0.5318201811015301 No Sick
75 S_73 Female 45.0 0.915191370314399 No Sick
76 S_74 Male 33.0 0.16627710406505336 No Sick
77 S_75 Male 57.0 0.9744135322178493 Sick
78 S_76 Male 36.0 0.3890723811007448 No Sick
79 S_77 Male 50.0 0.4782644098424499 No Sick
80 S_78 Female 33.0 0.5124992859909004 Sick
81 S_79 Male 36.0 0.11506051247073344 No Sick
82 S_80 Male 62.0 0.3673796432900976 No Sick
83 S_81 Male 56.0 0.061334487122536044 No Sick
84 S_82 Female 50.0 0.5792648132889187 No Sick
85 S_83 Female 55.0 0.33218576134014133 No Sick
86 S_84 Male 39.0 0.32085392248494365 No Sick
87 S_85 Male 34.0 0.04450511997589546 No Sick
88 S_86 Male 67.0 0.15133055497828424 No Sick
89 S_87 Female 50.0 0.18709959213671942 No Sick
90 S_88 Male 53.0 0.10073701418285581 No Sick
91 S_89 Male 35.0 0.5110592056032592 Sick
92 S_90 Male 38.0 0.8793802677769047 Sick
93 S_91 Female 47.0 0.1247705954358479 No Sick
94 S_92 Female 51.0 0.23236933325127848 No Sick
95 S_93 Female 64.0 0.5361768277573149 No Sick
96 S_94 Male 39.0 0.7145348867998527 Sick
97 S_95 Female 49.0 0.8949969712274917 No Sick
98 S_96 Female 51.0 0.4008792149067575 No Sick
99 S_97 Female 51.0 0.37491428399612803 No Sick
100 S_98 Female 39.0 0.3545989884164421 No Sick
101 S_99 Male 51.0 0.26829780510576695 No Sick
102

BIN
Q3/report.pptx Normal file

Binary file not shown.

BIN
Q3/roc_curve.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB