Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

20240318, Reporter User Guide and Reporter debug #369

Merged
74 commits merged into from
Mar 26, 2024
Merged

20240318, Reporter User Guide and Reporter debug #369

74 commits merged into from
Mar 26, 2024

Conversation

matheme-justyn
Copy link
Contributor

@matheme-justyn matheme-justyn commented Mar 18, 2024

See #347
(這個 branch 是 #367 的分岔,請先審 #367

這次除了寫 Reporter 的 README,在寫範例的過程中遇到的問題,也因此對 PETsARD 做出兩個改動:

  1. Reporter save_report 的輸出格式會同時個別紀錄每個模組的實驗名稱

    • 現況:目前報告最左邊只有一列 full_expt_name 紀錄該評分所使用的所有模組所有實驗名稱,蠻不好使用。
    • 未來:針對資料輸入當中所宣告的所有模組,個別給出一列來記錄
      • 例如現在是 full_expt_name 是 'Loader[adult-income]Evaluator[default[global]]' 跟 Loader[bank-marketing-2]Evaluator[default[global]]
      • 未來就會有多兩列,一列是 Loader 值是 'adult-income' 跟 'bank-marketing-2',另一列則是 Evaluator 值都是 'default_[global]'
      • 螢幕擷取畫面 2024-03-19 144447
    • 這個也是 @mileschangmoda 看到報告結果時給的建議
  2. Reporter save_report 方法沒辦法順利的累積報告的現況修復:

    • 現況:兩個 Loader、一個 Evaluator,針對 EvaluatorReporter,輸出卻發現只有最後一個 LoaderEvaluator 一行資料
    • 原因:reporter.create(data=data) 傳入的 data['exist_report'] 未發揮作用
      • Executor 中應該在 Status.put() 裡面被 Status.set_report(report=report) 儲存到 Status.report 這個 dict 裡,但在 ReporterOperator.get_result() 傳出來的格式不如預期,導致過去的 report 都沒被 Status 存下來

這兩點都不動到模組設計,算是 debug,故希望 @alexchen830 直接審批即可,thanks


Improvement

  • PETsARD\operator.py
    • 【改動二】優化 ReporterOperator.run() 的判斷條件 - cae7dac
    • PEP8 style: 適當換行 - 51c0ede
    • 比照 EvaluatorReporter.report_data 簡化名稱為 Reporter.result - 303bcc2
  • PETsARD\report\reporter.py
    • 【改動一】 - b295601
    • 【改動二】
      • .create(data) 的檢核簡化,並統一在 ReporterBase._verify_create_input(data) 方法裡執行 - 5a2c472 927d9e0
      • 導入 ReporterBase.get_full_expt_name(full_expt_tuple),統一管理 full_expt_name 的邏輯 - 2731b7d
      • 導入 ReporterSaveReport._process_report_data() 以此簡化報表產製邏輯 - 65c74ed
    • PEP8 style: 調整換行與 docstring 順序 - 5d45a4f
    • 比照 EvaluatorReporter.report_data 簡化名稱為 Reporter.result - 303bcc2
  • docs\_posts\2024-02-11-Reporter.md

Fixation

  • PETsARD\config.py
    • 【改動二】簡化 Status.put() 的判斷 - 68c1bac
      • 只要當下模組是 Reporter 就直接整個 ReporterOperator.get_result() 的結果進 Status.set_report()
      • 並且在 Status.set_report() 中做 report pd.concat(),讓 Reporter 簡化為只需要考慮該次報告即可
    • 【改動二】由於我錯誤保留了 'Status,導致了報告會重複疊加。僅保留 Reporter.create()的報告疊加,移除Status.set_report()` 的報告疊加 - bfc6f38
  • PETsARD\report\reporter.py
    • ReporterSaveReport.create() 的中繼檔 rpt_data 不需要 deepcopy - af8ea0d
    • __init__ docstring: eval 應該是實驗名稱(自訂的),不是實驗用的方式(method in Evaluator) - 111d819
    • ReporterSaveData.create() comment typo - c3cfb86
    • Reporter.result 應該在 Reporter.report() 才從工廠方法那邊拿來 - 37c812b
    • 【改動二】由於我錯誤保留了 'Status,導致了報告會重複疊加。僅保留 Reporter.create()的報告疊加,移除Status.set_report()` 的報告疊加 - bfc6f38
    • 【改動二】修正 for idx, value in data.items(): 當中的 value 可以是 pd.DataFrame 也可以是 None (沒有這個顆粒度) - e4b8641

Future


Sunset

@matheme-justyn matheme-justyn added the documentation Improvements or additions to documentation label Mar 18, 2024
@matheme-justyn matheme-justyn requested review from mileschangmoda and a user March 18, 2024 07:26
@matheme-justyn matheme-justyn self-assigned this Mar 18, 2024
@matheme-justyn matheme-justyn changed the title 20240318, Reporter User Guide 20240318, Reporter User Guide and Reporter debug Mar 19, 2024
@ghost ghost merged commit e2ad4d4 into dev Mar 26, 2024
1 check passed
@ghost ghost deleted the 347-readme-reporter branch March 26, 2024 06:06
@ghost ghost mentioned this pull request Mar 26, 2024
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

README - Reporter
1 participant