###### tags: `Project` 炳碩生醫菌種分類暨離群異常偵測 === # Data set ## 1. train data ### train.cache (2463x35220) `所有菌種` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫load_train()可以得到 (在data_util.py最下方新增load_train(),輸入`python data_util.py --cache_train=train.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 35220 columns(光譜張數/資料筆數) (1761x20) (train/Escherichia coli/ATCC23716的20210203-01_n有01-40個光譜,我把21-40刪掉了,故columns從35240變為35220) ### train19.cache (2463x24280) `19類常見菌種(定義於/root/HPO_grid/outlierfinder.py中的common_list)` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫train_drop_species()可以得到 (在data_util.py最下方新增train_drop_species(),輸入`python data_util.py --cache_train=train19.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 24280 columns(光譜張數/資料筆數) (1214x20) ### train19drop.cache (2463x22479) `19類常見菌種並drop掉某些離群光譜` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫train_drop_outlier()可以得到 (在data_util.py最下方新增train_drop_outlier(),輸入`python data_util.py --cache_train=train19drop.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 22479 columns(光譜張數/資料筆數) (22479並非固定值,而是會隨outlierfinder.py的threshold_19半徑參數做改變) ### train19==A==.cache (2048x24280) `19類常見菌種透過model_repository_A之blockA model所取得的feature vector` 1. 生成方式:先train好model_repository_A中的block==A== model,輸入指令後選==blockA== ```script= python model_testing.py --cache_train=train19.cache --cache_predict=train19.cache --test_function=30 --cache_feature_space=train19A.cache --model_repository=/root/HPO_grid/model_repository_A ``` 2. 資料形狀:2463 rows(光譜點/維度) x 24280 columns(光譜張數/資料筆數) (1214x20) 3. **train19B.cache、train19C_A3.cache、train19C.cache**皆是同樣的做法,差別在於修改cache_feature_space=train19==☐==.cache,以及選擇block==☐== ### train19==A==drop.cache (2463x24208) `19類常見菌種根據train19A.cache去drop掉某些離群光譜` 1. 生成方式:先準備好train19A.cache,再於/root/HPO_grid/data_util.py,呼叫train_feature_drop_outlier(==0==)可以得到 (在data_util.py最下方新增train_feature_drop_outlier(==0==),輸入`python data_util.py --cache_train=train19Adrop.cache --cache_feature_space=train19A.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2048 rows(光譜點/維度) x 24208 columns(光譜張數/資料筆數) (24208並非固定值,而是會隨outlierfinder.py的threshold_19==A==半徑參數做改變) 3. **train19Bdrop.cache、train19C_A3drop.cache、train19Cdrop.cache**皆是同樣的做法,差別在於修改train_feature_drop_outlier(==0~3==),(其中[A, B, C_A3, C] = [0, 1, 2, 3])、cache_train=train19==☐==drop.cache、cache_feature_space=train19==☐==.cache,這四份資料的資料形狀可能都不相同 ### train19lowrank.cache (2463x24280) `19類常見菌種並透過RPCA過濾雜訊` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫()()()可以得到 (在data_util.py最下方新增()()(),輸入`python data_util.py --cache_train=train19.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 24280 columns(光譜張數/資料筆數) (1214x20) ## 2. predict data ### predict.cache (2463x10240) `所有菌種` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫load_predict()可以得到 (在data_util.py最下方新增load_predict(),輸入`python data_util.py --cache_predict=predict.cache`,完成後記得把剛剛新增的那行刪掉) 2. 2463 rows(光譜點/維度) x 10240 columns(光譜張數/資料筆數) (512x20) (加上predict_new strain中的非常見菌種Staphylococcus saprophyticus,故columns從9840變為10240) ### predict19.cache (2463x6320) `19類常見菌種(定義於/root/HPO_grid/outlierfinder.py中的common_list)` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫predict_drop_species()可以得到 (在data_util.py最下方新增predict_drop_species(),輸入`python data_util.py --cache_predict=predict19.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 6320 columns(光譜張數/資料筆數) (316x20) ### predict22.cache (2463x3920) `22類非常見菌種(非common_list中的菌種)` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫predict_drop_species()可以得到 (在data_util.py最下方新增predict_drop_species(),輸入`python data_util.py --cache_predict=predict22.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 3920 columns(光譜張數/資料筆數) (196x20) ### predict7.cache (2463x4000) `7類常見菌種之新亞種` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫load_predict()可以得到 (在data_util.py最下方新增load_predict(),輸入`python data_util.py --cache_predict=predict7.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 4000 columns(光譜張數/資料筆數) (4000x20) (非常見菌種Staphylococcus saprophyticus移至predict22.cache,故columns從4400變為4000) ### predict19==A==.cache (2048x6320) `19類常見菌種透過model_repository_A之blockA model所取得的feature factor` 1. 生成方式:先train好model_repository_A中的block==A== model,輸入指令後選==blockA== ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict19.cache --test_function=30 --cache_feature_space=predict19A.cache --model_repository=/root/HPO_grid/model_repository_A ``` 2. 資料形狀:2048 rows(光譜點/維度) x 6320 columns(光譜張數/資料筆數) (316x20) 3. predict19B.cache、predict19C_A3.cache、predict19C.cache皆是同樣的做法,差別在於修改cache_feature_space=predict19==☐==.cache,以及選擇block==☐== ### predict22==A==.cache (2048x3920) `22類非常見菌種透過model_repository_A之blockA model所取得的feature factor` 1. 生成方式:先train好model_repository_A中的block==A== model,輸入指令後選==blockA== ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict22.cache --test_function=30 --cache_feature_space=predict22A.cache --model_repository=/root/HPO_grid/model_repository_A ``` 2. 資料形狀:2048 rows(光譜點/維度) x 3920 columns(光譜張數/資料筆數) (196x20) 3. predict22B.cache、predict22C_A3.cache、predict22C.cache皆是同樣的做法,差別在於修改cache_feature_space=predict22==☐==.cache,以及選擇block==☐== ### predict7==A==.cache (2048x4000) `7類常見菌種之新亞種透過model_repository_A之blockA model所取得的feature factor` 1. 生成方式:先train好model_repository_A中的block==A== model,輸入指令後選==blockA== ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict7.cache --test_function=30 --cache_feature_space=predict7A.cache --model_repository=/root/HPO_grid/model_repository_A ``` 2. 資料形狀:2048 rows(光譜點/維度) x 4000 columns(光譜張數/資料筆數) (200x20) 3. predict7B.cache、predict7C_A3.cache、predict7C.cache皆是同樣的做法,差別在於修改cache_feature_space=predict7==☐==.cache,以及選擇block==☐== ### predict19lowrank.cache (2463x6320) `19類常見菌種並透過RPCA過濾雜訊` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫???可以得到 (在data_util.py最下方新增???,輸入`python data_util.py --cache_predict=predict19.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 6320 columns(光譜張數/資料筆數) (316x20) ### predict22lowrank.cache (2463x3920) `22類非常見菌種並透過RPCA過濾雜訊` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫???可以得到 (在data_util.py最下方新增???,輸入`python data_util.py --cache_predict=predict22.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 3920 columns(光譜張數/資料筆數) (196x20) ### predict7lowrank.cache (2463x4000) `7類常見菌種之新亞種並透過RPCA過濾雜訊` 1. 生成方式:於/root/HPO_grid/data_util.py,呼叫???可以得到 (在data_util.py最下方新增???,輸入`python data_util.py --cache_predict=predict7.cache`,完成後記得把剛剛新增的那行刪掉) 2. 資料形狀:2463 rows(光譜點/維度) x 4000 columns(光譜張數/資料筆數) (200x20) (非常見菌種Staphylococcus saprophyticus移至predict22.cache,故columns從4400變為4000) # Model ## 0. model_repository Training 未考慮離群光譜(增加訓練菌種,使用`train.cache`做訓練),須先準備train.cache Testing 考慮已知&未知菌種(19+22),須先準備train.cache、predict19.cache、predict22.cache、predict7.cache 1. Training:(須設定cache_train、model_repository) ```script= python model_training.py --cache_train=train.cache --model_repository=/root/HPO_grid/model_repository ``` 2. Testing:(須設定cache_train、cache_predict、test_function、model_repository) ==測試結果統計在data_dir/results/models(41結尾的excel),confusion matrix及predict result會output在畫面中== a. 19類已知菌種(`predict19.cache`): ```script= python model_testing.py --cache_train=train.cache --cache_predict=predict19.cache --test_function=0 --model_repository=/root/HPO_grid/model_repository ``` b. 22類未知菌種(`predict22.cache`): ```script= python model_testing.py --cache_train=train.cache --cache_predict=predict22.cache --test_function=0 --model_repository=/root/HPO_grid/model_repository ``` (c.) 7類已知菌種之新亞種(`predict7.cache`): ```script= python model_testing.py --cache_train=train.cache --cache_predict=predict7.cache --test_function=0 --model_repository=/root/HPO_grid/model_repository ``` ## 1. model_repository_A Training 未考慮離群光譜(A,使用`train19.cache`做訓練),須先準備train19.cache Testing 分為僅考慮已知菌種(19) 和 考慮已知&未知菌種(19+22),須先準備train19.cache、predict19.cache、predict22.cache、(predict7.cache) 1. Training:(須設定cache_train、model_repository) ```script= python model_training.py --cache_train=train19.cache --model_repository=/root/HPO_grid/model_repository_A ``` 2. Testing:(須設定cache_train、cache_predict、test_function、model_repository) #### 僅考慮已知菌種(19) a. 19類已知菌種(`predict19.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict19.cache --test_function=11 --model_repository=/root/HPO_grid/model_repository_A ``` (b.) 7類已知菌種之新亞種(`predict7.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict7.cache --test_function=11 --model_repository=/root/HPO_grid/model_repository_A ``` #### 考慮已知&未知菌種(19+22) ==測試結果統計在data_dir/results/models(19結尾的excel),confusion matrix及predict result會output在畫面中== a. 19類已知菌種(`predict19.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict19.cache --test_function=12 --model_repository=/root/HPO_grid/model_repository_A ``` b. 22類未知菌種(`predict22.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict22.cache --test_function=12 --model_repository=/root/HPO_grid/model_repository_A ``` (c.) 7類已知菌種之新亞種(`predict7.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict7.cache --test_function=12 --model_repository=/root/HPO_grid/model_repository_A ``` ## 2. model_repository_B Training 考慮離群光譜(B,使用`train19drop.cache`做訓練),須先準備train19drop.cache Testing 分為僅考慮已知菌種(19) 和 考慮已知&未知菌種(19+22),須先準備train19.cache、predict19.cache、predict22.cache、(predict7.cache) 1. Training:(須設定cache_train、model_repository) ```script= python model_training.py --cache_train=train19drop.cache --model_repository=/root/HPO_grid/model_repository_B ``` 2. Testing:(須設定cache_train、cache_predict、test_function、model_repository) #### 僅考慮已知菌種(19) a. 19類已知菌種(`predict19.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict19.cache --test_function=21 --model_repository=/root/HPO_grid/model_repository_B ``` (b.) 7類已知菌種之新亞種(`predict7.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict7.cache --test_function=21 --model_repository=/root/HPO_grid/model_repository_B ``` #### 考慮已知&未知菌種(19+22) ==測試結果統計在data_dir/results/models(19結尾的excel),confusion matrix及predict result會output在畫面中== a. 19類已知菌種(`predict19.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict19.cache --test_function=22 --model_repository=/root/HPO_grid/model_repository_B ``` b. 22類未知菌種(`predict22.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict22.cache --test_function=22 --model_repository=/root/HPO_grid/model_repository_B ``` (c.) 7類已知菌種之新亞種(`predict7.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict7.cache --test_function=22 --model_repository=/root/HPO_grid/model_repository_B ``` ## 3. model_repository_C Training 考慮離群光譜(C,使用`train19(A/B/C_A3/C)drop.cache`做訓練),須先準備train19(A/B/C_A3/C)drop.cache,共4份cache,各自對應其model Testing 分為僅考慮已知菌種(19) 和 考慮已知&未知菌種(19+22),須先準備train19.cache、train19(A/B/C_A3/C).cache、predict19.cache、predict22.cache、(predict7.cache)、predict19(A/B/C_A3/C).cache、predict22(A/B/C_A3/C).cache、(predict7(A/B/C_A3/C).cache) 1. Training:(須設定cache_train、model_repository) ```script= python model_training.py --cache_train=train19drop.cache --model_repository=/root/HPO_grid/model_repository_C ``` 2. Testing:(須設定cache_train、cache_predict、test_function、model_repository) #### 僅考慮已知菌種(19) a. 19類已知菌種(`predict19.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict19.cache --test_function=31 --model_repository=/root/HPO_grid/model_repository_C ``` (b.) 7類已知菌種之新亞種(`predict7.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict7.cache --test_function=31 --model_repository=/root/HPO_grid/model_repository_C ``` #### 考慮已知&未知菌種(19+22) ==測試結果統計在data_dir/results/models(19結尾的excel),confusion matrix及predict result會output在畫面中== a. 19類已知菌種(`predict19.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict19.cache --test_function=32 --model_repository=/root/HPO_grid/model_repository_C ``` b. 22類未知菌種(`predict22.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict22.cache --test_function=32 --model_repository=/root/HPO_grid/model_repository_C ``` (c.) 7類已知菌種之新亞種(`predict7.cache`): ```script= python model_testing.py --cache_train=train19.cache --cache_predict=predict7.cache --test_function=32 --model_repository=/root/HPO_grid/model_repository_C ``` ## 4. model_repository_D Training 考慮離群光譜(B,使用`train19lowrank.cache`做訓練),須先準備train19lowrank.cache Testing 分為僅考慮已知菌種(19) 和 考慮已知&未知菌種(19+22),須先準備predict19lowrank.cache、predict22lowrank.cache、(predict7lowrank.cache) 1. Training:(須設定cache_train、model_repository) ```script= python model_training.py --cache_train=train19lowrank.cache --model_repository=/root/HPO_grid/model_repository_D ``` 2. Testing:(須設定cache_train、cache_predict、test_function、model_repository) #### 僅考慮已知菌種(19) a. 19類已知菌種(`predict19lowrank.cache`): ```script= python model_testing.py --cache_train=train19lowrank.cache --cache_predict=predict19lowrank.cache --test_function=11 --model_repository=/root/HPO_grid/model_repository_D ``` (b.) 7類已知菌種之新亞種(`predict7lowrank.cache`): ```script= python model_testing.py --cache_train=train19lowrank.cache --cache_predict=predict7lowrank.cache --test_function=11 --model_repository=/root/HPO_grid/model_repository_D ``` #### 考慮已知&未知菌種(19+22) ==測試結果統計在data_dir/results/models,confusion matrix output在畫面中== a. 19類已知菌種(`predict19lowrank.cache`): ```script= python model_testing.py --cache_train=train19lowrank.cache --cache_predict=predict19lowrank.cache --test_function=42 --model_repository=/root/HPO_grid/model_repository_D ``` b. 22類未知菌種(`predict22lowrank.cache`): ```script= python model_testing.py --cache_train=train19lowrank.cache --cache_predict=predict22lowrank.cache --test_function=42 --model_repository=/root/HPO_grid/model_repository_D ``` (c.) 7類已知菌種之新亞種(`predict7lowrank.cache`): ```script= python model_testing.py --cache_train=train19lowrank.cache --cache_predict=predict7lowrank.cache --test_function=42 --model_repository=/root/HPO_grid/model_repository_D # Other information ## 1. 如何產生probability threshold? 1. 未考慮離群光譜(增加訓練菌種)+考慮未知菌種(19+22),所使用的threshold: ```script= python model_testing.py --cache_train=train.cache --cache_predict=train.cache --test_function=11 --model_repository=/root/HPO_grid/model_repository ``` 將結果記錄在model_testing.py的test0函數中的threshold4u、threshold4l 2. 未考慮離群光譜(A)+考慮未知菌種(19+22),所使用的threshold: ```script= python model_testing.py --cache_train=train19.cache --cache_predict=train19.cache --test_function=11 --model_repository=/root/HPO_grid/model_repository_A ``` 將結果記錄在model_testing.py的test1_2函數中的threshold4u、threshold4l 3. 未考慮離群光譜(D)+考慮未知菌種(19+22),所使用的threshold: ```script= python model_testing.py --cache_train=train19lowrank.cache --cache_predict=train19lowrank.cache --test_function=11 --model_repository=/root/HPO_grid/model_repository_D ``` 將結果記錄在model_testing.py的test4_2函數中的threshold4u、threshold4l (目前用此threshold所得之預測結果太爛,故先改訂為0.9) ## 2. 如何產生任一菌種和自身中心的距離vs其餘菌種和自身中心的距離之probability density histogram? 1. 於/root/HPO_grid/data_util.py,呼叫plot_histogram()可以得到 (在data_util.py最下方新增plot_histogram(),輸入`python data_util.py --cache_train=train19.cache`,完成後記得把剛剛新增的那行刪掉) 2. 須根據目標train data設定cache_train=train19 or train19A or...等,預設的圖片產生路徑為/root/plot/ ## 3. 如何訂定distance threshold? 1. 根據畫出的histogram,觀察分布情形並訂定合適的threshold 2. 將threshold記錄在outlierfinder.py的threshold_19...等變數中 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up