From 3a2528d93078c0a897d9c839ba106327b113ce84 Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Sun, 20 Oct 2024 11:42:40 -0700 Subject: [PATCH 01/29] project startup instructions in README --- README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/README.md b/README.md index 0a48dc37..817074d3 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,39 @@ This will contain the model used for the project that based on the input informa The model works off of dummy data of several combinations of clients alongside the interventions chosen for them as well as their success rate at finding a job afterward. The model will be updated by the case workers by inputing new data for clients with their updated outcome information, and it can be updated on a daily, weekly, or monthly basis. This also has an API file to interact with the front end, and logic in order to process the interventions coming from the front end. This includes functions to clean data, create a matrix of all possible combinations in order to get the ones with the highest increase of success, and output the results in a way the front end can interact with. + + + +## Running the FastAPI project + +- The project was opened and edited in PyCharm, an virtual environment was created and Python 3.10 was selected as the default inpterpretor +- Dependencies defined in the `/app/requirements.txt` file will be auto-installed PyCharm when the project was opened for the first time, this may take a while to complete +- To run the FastAPI project, open the terminal in PyCharm and + - change the working directory into `/app` + - run the command `fastapi dev main.py` + +```bash +(venv) (base) ➜ CommonAssessmentTool-Group-Thoughtful git:(criteria2) ✗ pwd +/Users/jiayangliu/Documents/neu_csa/CS5500/CommonAssessmentTool-Group-Thoughtful + +(venv) (base) ➜ CommonAssessmentTool-Group-Thoughtful git:(criteria2) ✗ cd ./app + +(venv) (base) ➜ app git:(criteria2) ✗ fastapi dev main.py +``` + +By running the commands above, the FastAPI project will run in a dev environment and you can see outputs in the terminal like this: + +```bash +... +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +INFO: Started reloader process [74554] using WatchFiles +... +... +INFO: Started server process [74558] +INFO: Waiting for application startup. +INFO: Application startup complete. +``` + +Which means the application was successfully started up at the port 8000 on your local machine + +- Then open the url `http://127.0.0.1:8000/docs` in the browser to view the doc page of the current running project From 6282487fd0157b51afffe8966b6a27095e8d6b1c Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Tue, 29 Oct 2024 19:53:11 -0700 Subject: [PATCH 02/29] revoke mod on README --- README.md | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/README.md b/README.md index 817074d3..0a48dc37 100644 --- a/README.md +++ b/README.md @@ -3,39 +3,3 @@ This will contain the model used for the project that based on the input informa The model works off of dummy data of several combinations of clients alongside the interventions chosen for them as well as their success rate at finding a job afterward. The model will be updated by the case workers by inputing new data for clients with their updated outcome information, and it can be updated on a daily, weekly, or monthly basis. This also has an API file to interact with the front end, and logic in order to process the interventions coming from the front end. This includes functions to clean data, create a matrix of all possible combinations in order to get the ones with the highest increase of success, and output the results in a way the front end can interact with. - - - -## Running the FastAPI project - -- The project was opened and edited in PyCharm, an virtual environment was created and Python 3.10 was selected as the default inpterpretor -- Dependencies defined in the `/app/requirements.txt` file will be auto-installed PyCharm when the project was opened for the first time, this may take a while to complete -- To run the FastAPI project, open the terminal in PyCharm and - - change the working directory into `/app` - - run the command `fastapi dev main.py` - -```bash -(venv) (base) ➜ CommonAssessmentTool-Group-Thoughtful git:(criteria2) ✗ pwd -/Users/jiayangliu/Documents/neu_csa/CS5500/CommonAssessmentTool-Group-Thoughtful - -(venv) (base) ➜ CommonAssessmentTool-Group-Thoughtful git:(criteria2) ✗ cd ./app - -(venv) (base) ➜ app git:(criteria2) ✗ fastapi dev main.py -``` - -By running the commands above, the FastAPI project will run in a dev environment and you can see outputs in the terminal like this: - -```bash -... -INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) -INFO: Started reloader process [74554] using WatchFiles -... -... -INFO: Started server process [74558] -INFO: Waiting for application startup. -INFO: Application startup complete. -``` - -Which means the application was successfully started up at the port 8000 on your local machine - -- Then open the url `http://127.0.0.1:8000/docs` in the browser to view the doc page of the current running project From 9943d89334329059b0af88e1c2d6e02961833dbc Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Mon, 4 Nov 2024 17:07:43 -0800 Subject: [PATCH 03/29] update .gitignore to ignore venv files --- .gitignore | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.gitignore b/.gitignore index 14d7fa72..b6ea972a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,18 @@ .idea __pycache__ .DS_Store + +# Ignore virtual environment folder +env/ +venv/ + +# Ignore Python cache files +__pycache__/ +*.pyc +*.pyo + +# Ignore Jupyter Notebook checkpoints +.ipynb_checkpoints/ + +# Ignore VS Code settings +.vscode/ \ No newline at end of file From b4d0a9cbba29ace5e0622ab4b720c2aceeebea8e Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Mon, 4 Nov 2024 17:10:31 -0800 Subject: [PATCH 04/29] instructions on running the project in README --- README.md | 59 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 817074d3..4c7410c6 100644 --- a/README.md +++ b/README.md @@ -6,36 +6,53 @@ This also has an API file to interact with the front end, and logic in order to -## Running the FastAPI project +## Run the FastAPI project -- The project was opened and edited in PyCharm, an virtual environment was created and Python 3.10 was selected as the default inpterpretor -- Dependencies defined in the `/app/requirements.txt` file will be auto-installed PyCharm when the project was opened for the first time, this may take a while to complete -- To run the FastAPI project, open the terminal in PyCharm and - - change the working directory into `/app` - - run the command `fastapi dev main.py` +- Clone the git repo ```bash -(venv) (base) ➜ CommonAssessmentTool-Group-Thoughtful git:(criteria2) ✗ pwd -/Users/jiayangliu/Documents/neu_csa/CS5500/CommonAssessmentTool-Group-Thoughtful +# clone the project from git repo +git clone https://github.com/JiayangLJY/CommonAssessmentTool-Group-Thoughtful.git +``` -(venv) (base) ➜ CommonAssessmentTool-Group-Thoughtful git:(criteria2) ✗ cd ./app -(venv) (base) ➜ app git:(criteria2) ✗ fastapi dev main.py -``` -By running the commands above, the FastAPI project will run in a dev environment and you can see outputs in the terminal like this: +* Prepare the virtual environment ```bash -... -INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) -INFO: Started reloader process [74554] using WatchFiles -... -... -INFO: Started server process [74558] -INFO: Waiting for application startup. -INFO: Application startup complete. +# cd to the project root dir +cd CommonAssessmentTool-Group-Thoughtful + +# create a virtual env for the current project +python3 -m venv venv + +# activate the virtual env +source venv/bin/activate + +# install denpendency packages +pip install -r requirements.txt + +# export python path +export PYTHONPATH=$(pwd):$PYTHONPATH ``` -Which means the application was successfully started up at the port 8000 on your local machine +> - to deactivate the current virtual env: +> +> ```bash +> deactivate +> ``` + + + +- Run Fastapi application + +```bash +# cd to the {project}/app dir +cd app + +# run project in dev mode +fastapi dev main.py +``` - Then open the url `http://127.0.0.1:8000/docs` in the browser to view the doc page of the current running project + From 19733eaeb0715ec37c8c53a68179ec28b57230e9 Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Mon, 4 Nov 2024 17:28:14 -0800 Subject: [PATCH 05/29] Convert gender/citizen from text to digit --- app/clients/service/logic.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/clients/service/logic.py b/app/clients/service/logic.py index 0fd826a5..fa2a39c2 100644 --- a/app/clients/service/logic.py +++ b/app/clients/service/logic.py @@ -119,6 +119,17 @@ def convert_text(column, data:str): 'Employment': 8, 'Self-Employment': 9, 'Other (specify)': 10 + }, + # gender + { + 'M': 1, + 'F': 2 + }, + # citizen + { + 'citizen': 0, + 'permanent_resident': 1, + 'temporary_resident': 2 } ] for category in categorical_cols_integers: From e0c7afaae76e4f528ef7c22abb6bbe214e48c69b Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Mon, 4 Nov 2024 21:34:47 -0800 Subject: [PATCH 06/29] refactor: clean_input_data --- app/clients/schema.py | 7 +++++- app/clients/service/logic.py | 42 +++++++++++++++++++++++++++++++----- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/app/clients/schema.py b/app/clients/schema.py index 6b56ad98..585d4ba0 100644 --- a/app/clients/schema.py +++ b/app/clients/schema.py @@ -1,4 +1,4 @@ -from pydantic import BaseModel +from pydantic import BaseModel, field_serializer class PredictionInput(BaseModel): age: int @@ -25,3 +25,8 @@ class PredictionInput(BaseModel): substance_use: str time_unemployed: int need_mental_health_support_bool: str + + # @field_serializer('gender') + # def serialize_age(self, gender): + # gender + diff --git a/app/clients/service/logic.py b/app/clients/service/logic.py index fa2a39c2..fcf32ba8 100644 --- a/app/clients/service/logic.py +++ b/app/clients/service/logic.py @@ -67,6 +67,16 @@ def clean_input_data(data): return output +def clean_input_data_refactor(data): + # translate input into whatever we trained the model on, numerical data in a specific order + output = [] + for k, v in data.items(): + if isinstance(v, str): + v = convert_text(k, v) + output.append(v) + return output + + def convert_text(column, data:str): # Convert text answers from front end into digits # TODO: ensure that categorical columns match the valid answers in FormNew.jsx (L131) @@ -197,7 +207,8 @@ def process_results(baseline, results): return output def interpret_and_calculate(data): - raw_data = clean_input_data(data) + # raw_data = clean_input_data(data) + raw_data = clean_input_data_refactor(data) baseline_row = get_baseline_row(raw_data) baseline_row = baseline_row.reshape(1, -1) print("BASELINE ROW IS",baseline_row) @@ -220,9 +231,11 @@ def interpret_and_calculate(data): print(f"RESULTS: {results}") return results -if __name__ == "__main__": - print("running") - data = { + +#################### Test Data and Methods #################### + + +test_data = { "age": "23", "gender": "1", "work_experience": "1", @@ -248,7 +261,26 @@ def interpret_and_calculate(data): "time_unemployed": "1", "need_mental_health_support_bool": "1" } + +def test_clean_input_data(): + print("\n#################### test_clean_input_data() ####################") + output_origin = clean_input_data(test_data) + output_refactor = clean_input_data_refactor(test_data) + l1, l2 = len(output_origin), len(output_refactor) + if l1 != l2: + print("FAIL: len not equals\n") + return + for i in range(l1): + origin, refactor = output_origin[i], output_refactor[i] + if type(origin) != type(refactor) or origin != refactor: + print("FAIL: the {} th element not equals. origin:{}, refactor:{}\n".format(i, origin, refactor)) + return + print("PASS\n") + + +if __name__ == "__main__": + print("running") # print(data) - results = interpret_and_calculate(data) + results = interpret_and_calculate(test_data) print(results) From 9ea744e25bf1fef0552bd13819ca0900f7a53c43 Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Mon, 4 Nov 2024 22:41:52 -0800 Subject: [PATCH 07/29] refactor: alias in PredictionInput --- app/clients/router.py | 4 +- app/clients/schema.py | 80 +++++++++++++++++++++++------------- app/clients/service/logic.py | 44 +++++++++++++++++++- 3 files changed, 95 insertions(+), 33 deletions(-) diff --git a/app/clients/router.py b/app/clients/router.py index f860c402..c77e89d0 100644 --- a/app/clients/router.py +++ b/app/clients/router.py @@ -9,7 +9,7 @@ @router.post("/predictions") async def predict(data: PredictionInput): print("HERE") - print(data.model_dump()) - return interpret_and_calculate(data.model_dump()) + print(data.model_dump(by_alias=True)) + return interpret_and_calculate(data.model_dump(by_alias=True)) diff --git a/app/clients/schema.py b/app/clients/schema.py index 585d4ba0..6b73e300 100644 --- a/app/clients/schema.py +++ b/app/clients/schema.py @@ -1,32 +1,54 @@ -from pydantic import BaseModel, field_serializer +from pydantic import BaseModel, Field, field_serializer + class PredictionInput(BaseModel): - age: int - gender: str - work_experience: int - canada_workex: int - dep_num: int - canada_born: str - citizen_status: str - level_of_schooling: str - fluent_english: str - reading_english_scale: int - speaking_english_scale: int - writing_english_scale: int - numeracy_scale: int - computer_scale: int - transportation_bool: str - caregiver_bool: str - housing: str - income_source: str - felony_bool: str - attending_school: str - currently_employed: str - substance_use: str - time_unemployed: int - need_mental_health_support_bool: str - - # @field_serializer('gender') - # def serialize_age(self, gender): - # gender + # TODO: keep the field order the same as in model.py by reading a config file + """ + PredictionInput is the validated input from webpage users + + FILED ORDER is preserved in the model schema, which will represent the same order when calling the prediction model + + validation_alias is used for validating the json format data sending from front end + serialization_alias is used as column name when dumping the data model + + Fields in str format are converted into numerical types in @field_serializer decorator + """ + age: int = Field(..., validation_alias='age', serialization_alias='age') + gender: str = Field(..., validation_alias='gender', serialization_alias='gender') + work_experience: int = Field(..., validation_alias='work_experience', serialization_alias='work_experience') + canada_workex: int = Field(..., validation_alias='canada_workex', serialization_alias='canada_workex') + dep_num: int = Field(..., validation_alias='dep_num', serialization_alias='dep_num') + canada_born: str = Field(..., validation_alias='canada_born', serialization_alias='canada_born') + citizen_status: str = Field(..., validation_alias='citizen_status', serialization_alias='citizen_status') + level_of_schooling: str = Field(..., validation_alias='level_of_schooling', serialization_alias='level_of_schooling') + fluent_english: str = Field(..., validation_alias='fluent_english', serialization_alias='fluent_english') + reading_english_scale: int = Field(..., validation_alias='reading_english_scale', serialization_alias='reading_english_scale') + speaking_english_scale: int = Field(..., validation_alias='speaking_english_scale', serialization_alias='speaking_english_scale') + writing_english_scale: int = Field(..., validation_alias='writing_english_scale', serialization_alias='writing_english_scale') + numeracy_scale: int = Field(..., validation_alias='numeracy_scale', serialization_alias='numeracy_scale') + computer_scale: int = Field(..., validation_alias='computer_scale', serialization_alias='computer_scale') + transportation_bool: str = Field(..., validation_alias='transportation_bool', serialization_alias='transportation_bool') + caregiver_bool: str = Field(..., validation_alias='caregiver_bool', serialization_alias='caregiver_bool') + housing: str = Field(..., validation_alias='housing', serialization_alias='housing') + income_source: str = Field(..., validation_alias='income_source', serialization_alias='income_source') + felony_bool: str = Field(..., validation_alias='felony_bool', serialization_alias='felony_bool') + attending_school: str = Field(..., validation_alias='attending_school', serialization_alias='attending_school') + currently_employed: str = Field(..., validation_alias='currently_employed', serialization_alias='currently_employed') + substance_use: str = Field(..., validation_alias='substance_use', serialization_alias='substance_use') + time_unemployed: int = Field(..., validation_alias='time_unemployed', serialization_alias='time_unemployed') + need_mental_health_support_bool: str = Field(..., validation_alias='need_mental_health_support_bool', serialization_alias='need_mental_health_support_bool') + + @field_serializer('gender') + def serialize_age(self, gender: str): + return 1 if gender == 'M' else 2 + + @field_serializer('canada_born') + def serialize_canada_born(self, canada_born: str): + return 1 if canada_born == 'true' else 0 + @field_serializer('citizen_status') + def serialize_citizen_status(self, citizen_status: str): + match citizen_status: + case 'citizen': return 0 + case 'permanent_resident': return 1 + case 'temporary_resident': return 2 diff --git a/app/clients/service/logic.py b/app/clients/service/logic.py index fcf32ba8..f9029c5f 100644 --- a/app/clients/service/logic.py +++ b/app/clients/service/logic.py @@ -5,6 +5,8 @@ import pickle from itertools import combinations_with_replacement from itertools import product +from pydantic import BaseModel +from app.clients.schema import PredictionInput column_intervention = [ 'Life Stabilization', @@ -234,7 +236,7 @@ def interpret_and_calculate(data): #################### Test Data and Methods #################### - +# validated dict data for test test_data = { "age": "23", "gender": "1", @@ -262,9 +264,39 @@ def interpret_and_calculate(data): "need_mental_health_support_bool": "1" } +# raw data from front end +test_model = { + "age": "18", + "gender": "M", + "work_experience": "3", + "canada_workex": 0, + "dep_num": "1", + "canada_born": "true", + "citizen_status": "citizen", + "level_of_schooling": "Grade 12 or equivalent", + "fluent_english": "true", + "reading_english_scale": "3", + "speaking_english_scale": "1", + "writing_english_scale": "3", + "numeracy_scale": 0, + "computer_scale": "2", + "transportation_bool": "false", + "caregiver_bool": "true", + "housing": "Living with family/friend", + "income_source": "No Source of Income", + "felony_bool": "true", + "attending_school": "false", + "currently_employed": "true", + "substance_use": "true", + "time_unemployed": "1", + "need_mental_health_support_bool": "false" +} + + def test_clean_input_data(): print("\n#################### test_clean_input_data() ####################") - output_origin = clean_input_data(test_data) + # the original output data is derived from test_data + output_origin = [23, 1, 1, 1, 0, 1, 2, 2, 3, 2, 2, 3, 2, 3, 2, 1, 1, 5, 1, 0, 1, 1, 1, 1] output_refactor = clean_input_data_refactor(test_data) l1, l2 = len(output_origin), len(output_refactor) if l1 != l2: @@ -278,6 +310,14 @@ def test_clean_input_data(): print("PASS\n") +def test_alias(): + print("\n#################### test_alias() ####################") + model_refactor = PredictionInput(**test_model) + data_refactor = model_refactor.model_dump(by_alias=True) + print() + print(data_refactor) + + if __name__ == "__main__": print("running") # print(data) From 2bc069888cc54201687ff1a61bb0556d393c7862 Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Wed, 6 Nov 2024 17:01:14 -0800 Subject: [PATCH 08/29] refactor: data type conversion --- app/clients/schema.py | 120 ++++++++++++--- app/clients/service/logic.py | 283 +++++++++++------------------------ 2 files changed, 184 insertions(+), 219 deletions(-) diff --git a/app/clients/schema.py b/app/clients/schema.py index 6b73e300..3bba88d5 100644 --- a/app/clients/schema.py +++ b/app/clients/schema.py @@ -1,8 +1,6 @@ -from pydantic import BaseModel, Field, field_serializer - +from pydantic import BaseModel, Field, field_serializer, model_serializer class PredictionInput(BaseModel): - # TODO: keep the field order the same as in model.py by reading a config file """ PredictionInput is the validated input from webpage users @@ -18,37 +16,117 @@ class PredictionInput(BaseModel): work_experience: int = Field(..., validation_alias='work_experience', serialization_alias='work_experience') canada_workex: int = Field(..., validation_alias='canada_workex', serialization_alias='canada_workex') dep_num: int = Field(..., validation_alias='dep_num', serialization_alias='dep_num') - canada_born: str = Field(..., validation_alias='canada_born', serialization_alias='canada_born') + canada_born: bool = Field(..., validation_alias='canada_born', serialization_alias='canada_born') citizen_status: str = Field(..., validation_alias='citizen_status', serialization_alias='citizen_status') level_of_schooling: str = Field(..., validation_alias='level_of_schooling', serialization_alias='level_of_schooling') - fluent_english: str = Field(..., validation_alias='fluent_english', serialization_alias='fluent_english') + fluent_english: bool = Field(..., validation_alias='fluent_english', serialization_alias='fluent_english') reading_english_scale: int = Field(..., validation_alias='reading_english_scale', serialization_alias='reading_english_scale') speaking_english_scale: int = Field(..., validation_alias='speaking_english_scale', serialization_alias='speaking_english_scale') writing_english_scale: int = Field(..., validation_alias='writing_english_scale', serialization_alias='writing_english_scale') numeracy_scale: int = Field(..., validation_alias='numeracy_scale', serialization_alias='numeracy_scale') computer_scale: int = Field(..., validation_alias='computer_scale', serialization_alias='computer_scale') - transportation_bool: str = Field(..., validation_alias='transportation_bool', serialization_alias='transportation_bool') - caregiver_bool: str = Field(..., validation_alias='caregiver_bool', serialization_alias='caregiver_bool') + transportation_bool: bool = Field(..., validation_alias='transportation_bool', serialization_alias='transportation_bool') + caregiver_bool: bool = Field(..., validation_alias='caregiver_bool', serialization_alias='caregiver_bool') housing: str = Field(..., validation_alias='housing', serialization_alias='housing') income_source: str = Field(..., validation_alias='income_source', serialization_alias='income_source') - felony_bool: str = Field(..., validation_alias='felony_bool', serialization_alias='felony_bool') - attending_school: str = Field(..., validation_alias='attending_school', serialization_alias='attending_school') - currently_employed: str = Field(..., validation_alias='currently_employed', serialization_alias='currently_employed') - substance_use: str = Field(..., validation_alias='substance_use', serialization_alias='substance_use') + felony_bool: bool = Field(..., validation_alias='felony_bool', serialization_alias='felony_bool') + attending_school: bool = Field(..., validation_alias='attending_school', serialization_alias='attending_school') + currently_employed: bool = Field(..., validation_alias='currently_employed', serialization_alias='currently_employed') + substance_use: bool = Field(..., validation_alias='substance_use', serialization_alias='substance_use') time_unemployed: int = Field(..., validation_alias='time_unemployed', serialization_alias='time_unemployed') - need_mental_health_support_bool: str = Field(..., validation_alias='need_mental_health_support_bool', serialization_alias='need_mental_health_support_bool') + need_mental_health_support_bool: bool = Field(..., validation_alias='need_mental_health_support_bool', serialization_alias='need_mental_health_support_bool') - @field_serializer('gender') - def serialize_age(self, gender: str): - return 1 if gender == 'M' else 2 + # The following field serializer converts specific fields into numerical types, + @field_serializer('income_source') + def serialize_income_source(self, income_source: str): + match income_source: + case 'No Source of Income': + return 1 + case 'Employment Insurance': + return 2 + case 'Workplace Safety and Insurance Board': + return 3 + case 'Ontario Works applied or receiving': + return 4 + case 'Ontario Disability Support Program applied or receiving': + return 5 + case 'Dependent of someone receiving OW or ODSP': + return 6 + case 'Crown Ward': + return 7 + case 'Employment': + return 8 + case 'Self-Employment': + return 9 + case 'Other (specify)': + return 10 + + @field_serializer('housing') + def serialize_housing(self, housing: str): + match housing: + case 'Renting-private': + return 1 + case 'Renting-subsidized': + return 2 + case 'Boarding or lodging': + return 3 + case 'Homeowner': + return 4 + case 'Living with family/friend': + return 5 + case 'Institution': + return 6 + case 'Temporary second residence': + return 7 + case 'Band-owned home': + return 8 + case 'Homeless or transient': + return 9 + case 'Emergency hostel': + return 10 - @field_serializer('canada_born') - def serialize_canada_born(self, canada_born: str): - return 1 if canada_born == 'true' else 0 + @field_serializer('level_of_schooling') + def serialize_level_of_schooling(self, level_of_schooling: str): + match level_of_schooling: + case 'Grade 0-8': + return 1 + case 'Grade 9': + return 2 + case 'Grade 10': + return 3 + case 'Grade 11': + return 4 + case 'Grade 12 or equivalent': + return 5 + case 'OAC or Grade 13': + return 6 + case 'Some college': + return 7 + case 'Some university': + return 8 + case 'Some apprenticeship': + return 9 + case 'Certificate of Apprenticeship': + return 10 + case 'Journeyperson': + return 11 + case 'Certificate/Diploma': + return 12 + case 'Bachelor’s degree': + return 13 + case 'Post graduate': + return 14 @field_serializer('citizen_status') def serialize_citizen_status(self, citizen_status: str): match citizen_status: - case 'citizen': return 0 - case 'permanent_resident': return 1 - case 'temporary_resident': return 2 + case 'citizen': + return 0 + case 'permanent_resident': + return 1 + case 'temporary_resident': + return 2 + + @field_serializer('gender') + def serialize_age(self, gender: str): + return 1 if gender == 'M' else 2 diff --git a/app/clients/service/logic.py b/app/clients/service/logic.py index f9029c5f..46d0c78c 100644 --- a/app/clients/service/logic.py +++ b/app/clients/service/logic.py @@ -13,12 +13,12 @@ 'General Employment Assistance Services', 'Retention Services', 'Specialized Services', - 'Employment-Related Financial Supports for Job Seekers and Employers', + 'Employment-Related Financial Supports for Job Seekers and Employers', 'Employer Financial Supports', 'Enhanced Referrals for Skills Development' ] -#loads the model into logic +# loads the model into logic import os @@ -27,163 +27,58 @@ model = pickle.load(open(filename, "rb")) -def clean_input_data(data): - #translate input into wahtever we trained the model on, numerical data in a specific order - columns = ["age","gender","work_experience","canada_workex","dep_num", "canada_born", - "citizen_status", "level_of_schooling", "fluent_english", "reading_english_scale", - "speaking_english_scale", "writing_english_scale", "numeracy_scale", "computer_scale", - "transportation_bool", "caregiver_bool", "housing", "income_source", "felony_bool", "attending_school", - "currently_employed", "substance_use", "time_unemployed", "need_mental_health_support_bool"] - demographics = { - 'age': data['age'], - 'gender': data['gender'], - 'work_experience': data['work_experience'], - 'canada_workex': data['canada_workex'], - 'dep_num': data['dep_num'], - 'canada_born': data['canada_born'], - 'citizen_status': data['citizen_status'], - 'level_of_schooling': data['level_of_schooling'], - 'fluent_english': data['fluent_english'], - 'reading_english_scale': data['reading_english_scale'], - 'speaking_english_scale': data['speaking_english_scale'], - 'writing_english_scale': data['writing_english_scale'], - 'numeracy_scale': data['numeracy_scale'], - 'computer_scale': data['computer_scale'], - 'transportation_bool': data['transportation_bool'], - 'caregiver_bool': data['caregiver_bool'], - 'housing': data['housing'], - 'income_source': data['income_source'], - 'felony_bool': data['felony_bool'], - 'attending_school': data['attending_school'], - 'currently_employed': data['currently_employed'], - 'substance_use': data['substance_use'], - 'time_unemployed': data['time_unemployed'], - 'need_mental_health_support_bool': data['need_mental_health_support_bool'] - } - output = [] - for column in columns: - data = demographics.get(column, None) #default is None, and if you want to pass a value, can return any value - if isinstance(data, str): - data = convert_text(column, data) - output.append(data) - return output +def convert_none_bool(value): + """ + convert None to 0, True to 1, False to 0 + """ + if value is None: + return 0 + if type(value) == bool: + return 1 if value is True else 0 + else: + return value -def clean_input_data_refactor(data): - # translate input into whatever we trained the model on, numerical data in a specific order - output = [] - for k, v in data.items(): - if isinstance(v, str): - v = convert_text(k, v) - output.append(v) +def clean_input_data(data): + # TODO: keep the field order the same as in model.py by reading a config file + output = [convert_none_bool(v) for v in data.values()] return output -def convert_text(column, data:str): - # Convert text answers from front end into digits - # TODO: ensure that categorical columns match the valid answers in FormNew.jsx (L131) - categorical_cols_integers = [ - { - "": 0, - "true": 1, - "false": 0, - "no": 0, - "yes": 1, - "No": 0, - "Yes": 1 - }, - { - 'Grade 0-8': 1, - 'Grade 9': 2, - 'Grade 10': 3, - 'Grade 11': 4, - 'Grade 12 or equivalent': 5, - 'OAC or Grade 13': 6, - 'Some college': 7, - 'Some university': 8, - 'Some apprenticeship': 9, - 'Certificate of Apprenticeship': 10, - 'Journeyperson': 11, - 'Certificate/Diploma': 12, - 'Bachelor’s degree': 13, - 'Post graduate': 14 - }, - { - 'Renting-private': 1, - 'Renting-subsidized': 2, - 'Boarding or lodging': 3, - 'Homeowner': 4, - 'Living with family/friend': 5, - 'Institution': 6, - 'Temporary second residence': 7, - 'Band-owned home': 8, - 'Homeless or transient': 9, - 'Emergency hostel': 10 - }, - { - 'No Source of Income': 1, - 'Employment Insurance': 2, - 'Workplace Safety and Insurance Board': 3, - 'Ontario Works applied or receiving': 4, - 'Ontario Disability Support Program applied or receiving': 5, - 'Dependent of someone receiving OW or ODSP': 6, - 'Crown Ward': 7, - 'Employment': 8, - 'Self-Employment': 9, - 'Other (specify)': 10 - }, - # gender - { - 'M': 1, - 'F': 2 - }, - # citizen - { - 'citizen': 0, - 'permanent_resident': 1, - 'temporary_resident': 2 - } - ] - for category in categorical_cols_integers: - print(f"data: {data}") - print(f"column: {column}") - if data in category: - return category[data] - - if isinstance(data, str) and data.isnumeric(): - return int(data) - - return data - -#creates 128 possible combinations in order to run every possibility through model +# creates 128 possible combinations in order to run every possibility through model def create_matrix(row): - data = [row.copy() for _ in range(128)] + data = [row.copy() for _ in range(128)] perms = intervention_permutations(7) data = np.array(data) perms = np.array(perms) - matrix = np.concatenate((data,perms), axis = 1) + matrix = np.concatenate((data, perms), axis=1) return np.array(matrix) -#create matrix of permutations of 1 and 0 of num length + + +# create matrix of permutations of 1 and 0 of num length def intervention_permutations(num): - perms = list(product([0,1],repeat=num)) + perms = list(product([0, 1], repeat=num)) return np.array(perms) + def get_baseline_row(row): print(type(row)) - base_interventions = np.array([0]*7) # no interventions + base_interventions = np.array([0] * 7) # no interventions row = np.array(row) print(row) print(type(row)) - line = np.concatenate((row,base_interventions)) + line = np.concatenate((row, base_interventions)) return line + def intervention_row_to_names(row): names = [] for i, value in enumerate(row): - if value == 1: + if value == 1: names.append(column_intervention[i]) return names + def process_results(baseline, results): ##Example: """ @@ -196,39 +91,39 @@ def process_results(baseline, results): ] } """ - result_list= [] + result_list = [] for row in results: - percent = row[-1] + percent = row[-1] names = intervention_row_to_names(row) - result_list.append((percent,names)) + result_list.append((percent, names)) output = { - "baseline": baseline[-1], #if it's an array, want the value inside of the array + "baseline": baseline[-1], # if it's an array, want the value inside of the array "interventions": result_list, } return output + def interpret_and_calculate(data): - # raw_data = clean_input_data(data) - raw_data = clean_input_data_refactor(data) + raw_data = clean_input_data(data) baseline_row = get_baseline_row(raw_data) baseline_row = baseline_row.reshape(1, -1) - print("BASELINE ROW IS",baseline_row) + print("BASELINE ROW IS", baseline_row) intervention_rows = create_matrix(raw_data) baseline_prediction = model.predict(baseline_row) intervention_predictions = model.predict(intervention_rows) - intervention_predictions = intervention_predictions.reshape(-1, 1) #want shape to be a vertical column, not a row - result_matrix = np.concatenate((intervention_rows,intervention_predictions), axis = 1) ##CHANGED AXIS - + intervention_predictions = intervention_predictions.reshape(-1, 1) # want shape to be a vertical column, not a row + result_matrix = np.concatenate((intervention_rows, intervention_predictions), axis=1) ##CHANGED AXIS + # sort this matrix based on prediction # print("RESULT SAMPLE::", result_matrix[:5]) - result_order = result_matrix[:,-1].argsort() #take all rows and only last column, gives back list of indexes sorted - result_matrix = result_matrix[result_order] #indexing the matrix by the order + result_order = result_matrix[:, -1].argsort() # take all rows and only last column, gives back list of indexes sorted + result_matrix = result_matrix[result_order] # indexing the matrix by the order # slice matrix to only top N results - result_matrix = result_matrix[-3:,-8:] #-8 for interventions and prediction, want top 3, 3 combinations of intervention + result_matrix = result_matrix[-3:, -8:] # -8 for interventions and prediction, want top 3, 3 combinations of intervention # post process results if needed ie make list of names for each row - results = process_results(baseline_prediction,result_matrix) + results = process_results(baseline_prediction, result_matrix) # build output dict print(f"RESULTS: {results}") return results @@ -236,34 +131,6 @@ def interpret_and_calculate(data): #################### Test Data and Methods #################### -# validated dict data for test -test_data = { - "age": "23", - "gender": "1", - "work_experience": "1", - "canada_workex": "1", - "dep_num": "0", - "canada_born": "1", - "citizen_status": "2", - "level_of_schooling": "2", - "fluent_english": "3", - "reading_english_scale": "2", - "speaking_english_scale": "2", - "writing_english_scale": "3", - "numeracy_scale": "2", - "computer_scale": "3", - "transportation_bool": "2", - "caregiver_bool": "1", - "housing": "1", - "income_source": "5", - "felony_bool": "1", - "attending_school": "0", - "currently_employed": "1", - "substance_use": "1", - "time_unemployed": "1", - "need_mental_health_support_bool": "1" - } - # raw data from front end test_model = { "age": "18", @@ -292,35 +159,55 @@ def interpret_and_calculate(data): "need_mental_health_support_bool": "false" } +# validated dict data for test (unconverted) +test_data = {'age': 18, 'gender': 1, 'work_experience': 3, 'canada_workex': 0, 'dep_num': 1, 'canada_born': 1, + 'citizen_status': 0, 'level_of_schooling': 'Grade 12 or equivalent', 'fluent_english': 'true', + 'reading_english_scale': 3, 'speaking_english_scale': 1, 'writing_english_scale': 3, 'numeracy_scale': 0, + 'computer_scale': 2, 'transportation_bool': 'false', 'caregiver_bool': 'true', + 'housing': 'Living with family/friend', 'income_source': 'No Source of Income', 'felony_bool': 'true', + 'attending_school': 'false', 'currently_employed': 'true', 'substance_use': 'true', 'time_unemployed': 1, + 'need_mental_health_support_bool': 'false'} + +# output after data converting +test_output = [18, 1, 3, 0, 1, 1, 0, 5, 1, 3, 1, 3, 0, 2, 0, 1, 5, 1, 1, 0, 1, 1, 1, 0] + +# prediction result +test_prediction_result = { + "baseline": 67.6, + "interventions": [ + (68.7, ["Life Stabilization", "General Employment Assistance Services", "Specialized Services", "Employment-Related Financial Supports for Job Seekers and Employers"]), + (68.7, ["Life Stabilization", "Specialized Services", "Employment-Related Financial Supports for Job Seekers and Employers"]), + (69.0, ["Life Stabilization", "Specialized Services"])] +} + -def test_clean_input_data(): - print("\n#################### test_clean_input_data() ####################") - # the original output data is derived from test_data - output_origin = [23, 1, 1, 1, 0, 1, 2, 2, 3, 2, 2, 3, 2, 3, 2, 1, 1, 5, 1, 0, 1, 1, 1, 1] - output_refactor = clean_input_data_refactor(test_data) - l1, l2 = len(output_origin), len(output_refactor) - if l1 != l2: +def test_data_type_conversion(): + """test the conversion of diff data types""" + print("\n#################### test_data_type_conversion() ####################") + model_refactor = PredictionInput(**test_model) + output_refactor = model_refactor.model_dump(by_alias=True) + output_refactor = [v for v in output_refactor.values()] + + if len(test_output) != len(output_refactor): print("FAIL: len not equals\n") return - for i in range(l1): - origin, refactor = output_origin[i], output_refactor[i] - if type(origin) != type(refactor) or origin != refactor: - print("FAIL: the {} th element not equals. origin:{}, refactor:{}\n".format(i, origin, refactor)) + + for i in range(len(test_output)): + if test_output[i] != output_refactor[i]: + print("FAIL: the {} th element not equals. origin:{}, refactor:{}\n".format(i, test_output[i], output_refactor[i])) return print("PASS\n") -def test_alias(): - print("\n#################### test_alias() ####################") +def test_prediction(): + """test the whole prediction process""" + print("\n#################### test_prediction() ####################") model_refactor = PredictionInput(**test_model) - data_refactor = model_refactor.model_dump(by_alias=True) - print() - print(data_refactor) - - -if __name__ == "__main__": - print("running") - # print(data) - results = interpret_and_calculate(test_data) - print(results) + output_refactor = model_refactor.model_dump(by_alias=True) + result = interpret_and_calculate(output_refactor) + # print(result) + if result == test_prediction_result: + print("PASS\n") + else: + print("FAIL\n") From bb0ac744c1a4123651cdc621e2fd0f64b539e248 Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Wed, 6 Nov 2024 21:11:15 -0800 Subject: [PATCH 09/29] refactor: preserve col order in .env config file --- app/clients/.env | 25 +++++++++++ app/clients/router.py | 6 +-- app/clients/schema.py | 3 +- app/clients/service/logic.py | 80 +++++++++++++++++++++--------------- app/clients/service/model.py | 50 +++++++++++----------- app/clients/util.py | 12 ++++++ 6 files changed, 112 insertions(+), 64 deletions(-) create mode 100644 app/clients/.env create mode 100644 app/clients/util.py diff --git a/app/clients/.env b/app/clients/.env new file mode 100644 index 00000000..ac79a16a --- /dev/null +++ b/app/clients/.env @@ -0,0 +1,25 @@ +FEATURE_COLS_IN_SEQ=["age", "gender", "work_experience", "canada_workex", "dep_num", "canada_born", "citizen_status", "level_of_schooling", "fluent_english", "reading_english_scale", "speaking_english_scale", "writing_english_scale", "numeracy_scale", "computer_scale", "transportation_bool", "caregiver_bool", "housing", "income_source", "felony_bool", "attending_school", "currently_employed", "substance_use", "time_unemployed", "need_mental_health_support_bool"] +# categorical_cols = ['age', +# 'gender', #bool +# 'work_experience', #years of work experience +# 'canada_workex',#years of work experience in canada +# 'dep_num', #number of dependents +# 'canada_born', #born in canada +# 'citizen_status', #citizen status +# 'level_of_schooling', #highest level achieved (1-14) +# 'fluent_english', #english level fluency, scale (1-10) +# 'reading_english_scale', #reading scale (1-10) +# 'speaking_english_scale', #speaking level comfort (1-10) +# 'writing_english_scale', #writing scale (1-10) +# 'numeracy_scale', #numeracy scale (1-10) +# 'computer_scale', #computer use scale (1-10) +# 'transportation_bool', #need transportation support (bool) +# 'caregiver_bool', #is a primary care giver bool +# 'housing', #housing situation 1-10 +# 'income_source', #source of income 1-10 +# 'felony_bool', #has a felony bool +# 'attending_school', #currently a student bool +# 'currently_employed', #currently employed bool +# 'substance_use', #disorder, bool +# 'time_unemployed', #number of years unemployed +# 'need_mental_health_support_bool'] #need support \ No newline at end of file diff --git a/app/clients/router.py b/app/clients/router.py index c77e89d0..09a543ff 100644 --- a/app/clients/router.py +++ b/app/clients/router.py @@ -1,15 +1,13 @@ from fastapi import APIRouter -from fastapi.responses import HTMLResponse - from app.clients.service.logic import interpret_and_calculate from app.clients.schema import PredictionInput + router = APIRouter(prefix="/clients", tags=["clients"]) + @router.post("/predictions") async def predict(data: PredictionInput): print("HERE") print(data.model_dump(by_alias=True)) return interpret_and_calculate(data.model_dump(by_alias=True)) - - diff --git a/app/clients/schema.py b/app/clients/schema.py index 3bba88d5..4ccc1fcb 100644 --- a/app/clients/schema.py +++ b/app/clients/schema.py @@ -1,10 +1,11 @@ from pydantic import BaseModel, Field, field_serializer, model_serializer + class PredictionInput(BaseModel): """ PredictionInput is the validated input from webpage users - FILED ORDER is preserved in the model schema, which will represent the same order when calling the prediction model + The serialization_alias of each filed MUST be identical to the column name in dotenv file validation_alias is used for validating the json format data sending from front end serialization_alias is used as column name when dumping the data model diff --git a/app/clients/service/logic.py b/app/clients/service/logic.py index 46d0c78c..267b7666 100644 --- a/app/clients/service/logic.py +++ b/app/clients/service/logic.py @@ -1,12 +1,9 @@ -from typing import List -import pandas as pd -import json import numpy as np import pickle -from itertools import combinations_with_replacement from itertools import product -from pydantic import BaseModel from app.clients.schema import PredictionInput +from app.clients.util import util_get_cols + column_intervention = [ 'Life Stabilization', @@ -28,9 +25,7 @@ def convert_none_bool(value): - """ - convert None to 0, True to 1, False to 0 - """ + """convert None to 0, True to 1, False to 0""" if value is None: return 0 if type(value) == bool: @@ -39,10 +34,9 @@ def convert_none_bool(value): return value -def clean_input_data(data): - # TODO: keep the field order the same as in model.py by reading a config file - output = [convert_none_bool(v) for v in data.values()] - return output +def clean_input_data(data, features): + """retrieve values from {data} following in the ORDER defined by {features}""" + return [convert_none_bool(data.get(feat)) for feat in features] # creates 128 possible combinations in order to run every possibility through model @@ -105,7 +99,7 @@ def process_results(baseline, results): def interpret_and_calculate(data): - raw_data = clean_input_data(data) + raw_data = clean_input_data(data, util_get_cols()) baseline_row = get_baseline_row(raw_data) baseline_row = baseline_row.reshape(1, -1) print("BASELINE ROW IS", baseline_row) @@ -159,14 +153,13 @@ def interpret_and_calculate(data): "need_mental_health_support_bool": "false" } -# validated dict data for test (unconverted) -test_data = {'age': 18, 'gender': 1, 'work_experience': 3, 'canada_workex': 0, 'dep_num': 1, 'canada_born': 1, - 'citizen_status': 0, 'level_of_schooling': 'Grade 12 or equivalent', 'fluent_english': 'true', - 'reading_english_scale': 3, 'speaking_english_scale': 1, 'writing_english_scale': 3, 'numeracy_scale': 0, - 'computer_scale': 2, 'transportation_bool': 'false', 'caregiver_bool': 'true', - 'housing': 'Living with family/friend', 'income_source': 'No Source of Income', 'felony_bool': 'true', - 'attending_school': 'false', 'currently_employed': 'true', 'substance_use': 'true', 'time_unemployed': 1, - 'need_mental_health_support_bool': 'false'} +# the converted data +test_converted = {'age': 18, 'gender': 1, 'work_experience': 3, 'canada_workex': 0, 'dep_num': 1, 'canada_born': True, + 'citizen_status': 0, 'level_of_schooling': 5, 'fluent_english': True, 'reading_english_scale': 3, + 'speaking_english_scale': 1, 'writing_english_scale': 3, 'numeracy_scale': 0, 'computer_scale': 2, + 'transportation_bool': False, 'caregiver_bool': True, 'housing': 5, 'income_source': 1, + 'felony_bool': True, 'attending_school': False, 'currently_employed': True, 'substance_use': True, + 'time_unemployed': 1, 'need_mental_health_support_bool': False} # output after data converting test_output = [18, 1, 3, 0, 1, 1, 0, 5, 1, 3, 1, 3, 0, 2, 0, 1, 5, 1, 1, 0, 1, 1, 1, 0] @@ -180,21 +173,42 @@ def interpret_and_calculate(data): (69.0, ["Life Stabilization", "Specialized Services"])] } +# ordered features for test +test_features = ['age', 'gender', 'work_experience', 'canada_workex', 'dep_num', 'canada_born', 'citizen_status', + 'level_of_schooling', 'fluent_english', 'reading_english_scale', 'speaking_english_scale', + 'writing_english_scale', 'numeracy_scale', 'computer_scale', 'transportation_bool', + 'caregiver_bool', 'housing', 'income_source', 'felony_bool', 'attending_school', + 'currently_employed', 'substance_use', 'time_unemployed', 'need_mental_health_support_bool'] + + +def get_data(): + return PredictionInput(**test_model).model_dump(by_alias=True) + + +def test_dump_model(): + """test to check the dumped model""" + print("\n#################### test_dump_model() ####################") + refactor_converted = get_data() + if refactor_converted == test_converted: + print("PASS\n") + else: + print("FAIL\n") + -def test_data_type_conversion(): - """test the conversion of diff data types""" - print("\n#################### test_data_type_conversion() ####################") - model_refactor = PredictionInput(**test_model) - output_refactor = model_refactor.model_dump(by_alias=True) - output_refactor = [v for v in output_refactor.values()] +def test_clean_input_data(): + """test data type conversion""" + print("\n#################### test_clean_input_data() ####################") + data = get_data() + refactor_output = clean_input_data(data, test_features) - if len(test_output) != len(output_refactor): + if len(test_output) != len(refactor_output): print("FAIL: len not equals\n") return for i in range(len(test_output)): - if test_output[i] != output_refactor[i]: - print("FAIL: the {} th element not equals. origin:{}, refactor:{}\n".format(i, test_output[i], output_refactor[i])) + if test_output[i] != refactor_output[i]: + print("FAIL: the {} th element not equals. origin:{}, refactor:{}\n".format(i, test_output[i], + refactor_output[i])) return print("PASS\n") @@ -202,10 +216,8 @@ def test_data_type_conversion(): def test_prediction(): """test the whole prediction process""" print("\n#################### test_prediction() ####################") - model_refactor = PredictionInput(**test_model) - output_refactor = model_refactor.model_dump(by_alias=True) - result = interpret_and_calculate(output_refactor) - # print(result) + data = get_data() + result = interpret_and_calculate(data) if result == test_prediction_result: print("PASS\n") else: diff --git a/app/clients/service/model.py b/app/clients/service/model.py index 51369ac3..2cc79632 100644 --- a/app/clients/service/model.py +++ b/app/clients/service/model.py @@ -1,39 +1,17 @@ import pandas as pd -import json import numpy as np import pickle from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestRegressor +from app.clients.util import util_get_cols def prepare_models(): # Load dataset and define the features and labels backendCode = pd.read_csv('data_commontool.csv') # Define categorical columns and interventions - categorical_cols = ['age', - 'gender', #bool - 'work_experience', #years of work experience - 'canada_workex',#years of work experience in canada - 'dep_num', #number of dependents - 'canada_born', #born in canada - 'citizen_status', #citizen status - 'level_of_schooling', #highest level achieved (1-14) - 'fluent_english', #english level fluency, scale (1-10) - 'reading_english_scale', #reading scale (1-10) - 'speaking_english_scale', #speaking level comfort (1-10) - 'writing_english_scale', #writing scale (1-10) - 'numeracy_scale', #numeracy scale (1-10) - 'computer_scale', #computer use scale (1-10) - 'transportation_bool', #need transportation support (bool) - 'caregiver_bool', #is a primary care giver bool - 'housing', #housing situation 1-10 - 'income_source', #source of income 1-10 - 'felony_bool', #has a felony bool - 'attending_school', #currently a student bool - 'currently_employed', #currently employed bool - 'substance_use', #disorder, bool - 'time_unemployed', #number of years unemployed - 'need_mental_health_support_bool'] #need support + # the order of features MUST be the same as the features when predicting the result in logic.py + categorical_cols = util_get_cols() interventions = [ 'employment_assistance', 'life_stabilization', @@ -61,6 +39,27 @@ def prepare_models(): return rf_model_baseline + +#################### Test Data and Methods #################### + +# original order of columns: +test_original_cols = ['age', 'gender', 'work_experience', 'canada_workex', 'dep_num', 'canada_born', 'citizen_status', + 'level_of_schooling', 'fluent_english', 'reading_english_scale', 'speaking_english_scale', + 'writing_english_scale', 'numeracy_scale', 'computer_scale', 'transportation_bool', + 'caregiver_bool', 'housing', 'income_source', 'felony_bool', 'attending_school', + 'currently_employed', 'substance_use', 'time_unemployed', 'need_mental_health_support_bool'] + + +def test_column_order(): + print("\n#################### test_data_type_conversion() ####################") + cols = util_get_cols() + # print(cols) + if cols == test_original_cols: + print("PASS") + else: + print("FAIL") + + def main(): print("Start model.") model = prepare_models() @@ -68,5 +67,6 @@ def main(): pickle.dump(model, open("model.pkl", "wb")) #saves model to the file name input, write binary model = pickle.load(open("model.pkl", "rb")) #read binary + if __name__ == "__main__": main() diff --git a/app/clients/util.py b/app/clients/util.py new file mode 100644 index 00000000..132dcab5 --- /dev/null +++ b/app/clients/util.py @@ -0,0 +1,12 @@ +import os +from functools import lru_cache + +import json +from dotenv import load_dotenv + + +@lru_cache +def util_get_cols(): + """read categorical columns from dotenv file""" + load_dotenv() + return json.loads(os.getenv('FEATURE_COLS_IN_SEQ')) From 229063ab484379244191bbc1faef34c5050f9bca Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Wed, 6 Nov 2024 21:32:24 -0800 Subject: [PATCH 10/29] Update sprints --- README.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/README.md b/README.md index ee578f9a..0b5ee855 100644 --- a/README.md +++ b/README.md @@ -54,3 +54,40 @@ fastapi dev main.py - Then open the url `http://127.0.0.1:8000/docs` in the browser to view the doc page of the current running project + + +## Sprint 1 + +4 tasks have been assigned to each of the group member: + +1. Configurable machine learning model + +- A config file will be included to configure the type and hyperparameter for ML model +- Create an abstraction layer for training and evaluation + +2. Maintenance on form data naming, ordering and converting + +- The naming and order of the form data will be uniformly maintained in the schema.py +- Text conversion will be encapsulated within the data model + +3. Unit tests for server-side data processing steps + +- Test model selection logic in `/predict` endpoint +- Test data processing logic of `interpret_and_calculate()` +- Test frontend validation and form submission +- Validate the input data + +4. Functional test for front-back end interaction + +- Update the frontend to support dynamic model selection and hyperparameter configuration +- Conduct comprehensive integration tests to ensure the new features work correctly across the API and frontend + + + +## Sprint 2 + +- Environments of backend and front end projects were successfully set up and both projects are now runnable in our local machines +- Intergrated test was perfromed on the `clients/predictions` API to make sure the API is working +- `field_serializer` from Pydantic package was used to convert string type into numerical types +- We are investigating FastAPI docs and finding that we can use environment variables to configure some parameters in code +- Primary study showed that we need to retrieve some intermediate variables to suit our code with test From f8fc1820739117fbb934ed509ef263a00dbeea24 Mon Sep 17 00:00:00 2001 From: ShqiW Date: Tue, 12 Nov 2024 20:01:26 -0800 Subject: [PATCH 11/29] add test code --- .gitignore | 5 +- app/clients/service/logic.py | 99 --- app/clients/service/model.py | 20 - requirements.txt | 2 +- tests/__init__.py | 0 tests/conftest.py | 4 + tests/test.py | 1198 +++++++++++++++++++++++++++++++++- 7 files changed, 1189 insertions(+), 139 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/conftest.py diff --git a/.gitignore b/.gitignore index b6ea972a..2ef07e3e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,7 @@ __pycache__/ .ipynb_checkpoints/ # Ignore VS Code settings -.vscode/ \ No newline at end of file +.vscode/ + +# Ignore shell Scripts +*.sh \ No newline at end of file diff --git a/app/clients/service/logic.py b/app/clients/service/logic.py index 267b7666..6158da0d 100644 --- a/app/clients/service/logic.py +++ b/app/clients/service/logic.py @@ -124,102 +124,3 @@ def interpret_and_calculate(data): #################### Test Data and Methods #################### - -# raw data from front end -test_model = { - "age": "18", - "gender": "M", - "work_experience": "3", - "canada_workex": 0, - "dep_num": "1", - "canada_born": "true", - "citizen_status": "citizen", - "level_of_schooling": "Grade 12 or equivalent", - "fluent_english": "true", - "reading_english_scale": "3", - "speaking_english_scale": "1", - "writing_english_scale": "3", - "numeracy_scale": 0, - "computer_scale": "2", - "transportation_bool": "false", - "caregiver_bool": "true", - "housing": "Living with family/friend", - "income_source": "No Source of Income", - "felony_bool": "true", - "attending_school": "false", - "currently_employed": "true", - "substance_use": "true", - "time_unemployed": "1", - "need_mental_health_support_bool": "false" -} - -# the converted data -test_converted = {'age': 18, 'gender': 1, 'work_experience': 3, 'canada_workex': 0, 'dep_num': 1, 'canada_born': True, - 'citizen_status': 0, 'level_of_schooling': 5, 'fluent_english': True, 'reading_english_scale': 3, - 'speaking_english_scale': 1, 'writing_english_scale': 3, 'numeracy_scale': 0, 'computer_scale': 2, - 'transportation_bool': False, 'caregiver_bool': True, 'housing': 5, 'income_source': 1, - 'felony_bool': True, 'attending_school': False, 'currently_employed': True, 'substance_use': True, - 'time_unemployed': 1, 'need_mental_health_support_bool': False} - -# output after data converting -test_output = [18, 1, 3, 0, 1, 1, 0, 5, 1, 3, 1, 3, 0, 2, 0, 1, 5, 1, 1, 0, 1, 1, 1, 0] - -# prediction result -test_prediction_result = { - "baseline": 67.6, - "interventions": [ - (68.7, ["Life Stabilization", "General Employment Assistance Services", "Specialized Services", "Employment-Related Financial Supports for Job Seekers and Employers"]), - (68.7, ["Life Stabilization", "Specialized Services", "Employment-Related Financial Supports for Job Seekers and Employers"]), - (69.0, ["Life Stabilization", "Specialized Services"])] -} - -# ordered features for test -test_features = ['age', 'gender', 'work_experience', 'canada_workex', 'dep_num', 'canada_born', 'citizen_status', - 'level_of_schooling', 'fluent_english', 'reading_english_scale', 'speaking_english_scale', - 'writing_english_scale', 'numeracy_scale', 'computer_scale', 'transportation_bool', - 'caregiver_bool', 'housing', 'income_source', 'felony_bool', 'attending_school', - 'currently_employed', 'substance_use', 'time_unemployed', 'need_mental_health_support_bool'] - - -def get_data(): - return PredictionInput(**test_model).model_dump(by_alias=True) - - -def test_dump_model(): - """test to check the dumped model""" - print("\n#################### test_dump_model() ####################") - refactor_converted = get_data() - if refactor_converted == test_converted: - print("PASS\n") - else: - print("FAIL\n") - - -def test_clean_input_data(): - """test data type conversion""" - print("\n#################### test_clean_input_data() ####################") - data = get_data() - refactor_output = clean_input_data(data, test_features) - - if len(test_output) != len(refactor_output): - print("FAIL: len not equals\n") - return - - for i in range(len(test_output)): - if test_output[i] != refactor_output[i]: - print("FAIL: the {} th element not equals. origin:{}, refactor:{}\n".format(i, test_output[i], - refactor_output[i])) - return - print("PASS\n") - - -def test_prediction(): - """test the whole prediction process""" - print("\n#################### test_prediction() ####################") - data = get_data() - result = interpret_and_calculate(data) - if result == test_prediction_result: - print("PASS\n") - else: - print("FAIL\n") - diff --git a/app/clients/service/model.py b/app/clients/service/model.py index 2cc79632..7b0e73e9 100644 --- a/app/clients/service/model.py +++ b/app/clients/service/model.py @@ -40,26 +40,6 @@ def prepare_models(): return rf_model_baseline -#################### Test Data and Methods #################### - -# original order of columns: -test_original_cols = ['age', 'gender', 'work_experience', 'canada_workex', 'dep_num', 'canada_born', 'citizen_status', - 'level_of_schooling', 'fluent_english', 'reading_english_scale', 'speaking_english_scale', - 'writing_english_scale', 'numeracy_scale', 'computer_scale', 'transportation_bool', - 'caregiver_bool', 'housing', 'income_source', 'felony_bool', 'attending_school', - 'currently_employed', 'substance_use', 'time_unemployed', 'need_mental_health_support_bool'] - - -def test_column_order(): - print("\n#################### test_data_type_conversion() ####################") - cols = util_get_cols() - # print(cols) - if cols == test_original_cols: - print("PASS") - else: - print("FAIL") - - def main(): print("Start model.") model = prepare_models() diff --git a/requirements.txt b/requirements.txt index 1ccf75b7..6350bd11 100644 --- a/requirements.txt +++ b/requirements.txt @@ -139,4 +139,4 @@ webcolors==1.13 webencodings==0.5.1 websocket-client==1.5.1 websockets==11.0.3 -widgetsnbextension==4.0.7 +widgetsnbextension==4.0.7 \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 00000000..8a6419f7 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,4 @@ +# tests/conftest.py +import os +import sys +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) \ No newline at end of file diff --git a/tests/test.py b/tests/test.py index a911f0a2..9b3b0d8d 100644 --- a/tests/test.py +++ b/tests/test.py @@ -1,23 +1,1185 @@ -from logic import interpret_and_calculate -from itertools import combinations_with_replacement - -# def test_interpret_and_calculate(): -# print("running tests") -# data = {"23","1","1","1","1","0","1","2","2","3","2", -# "2","3","2","1","1","1","1","1","1","0","1","1","1" -# } -# result = interpret_and_calculate(data) -# print(data) +import json +import sys +import os +import warnings +from fastapi.testclient import TestClient +import pytest +from unittest.mock import Mock, patch +import numpy as np + +# Add the project root directory to Python path +project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +sys.path.append(project_root) +warnings.filterwarnings("ignore", category=DeprecationWarning) +from app.main import app +from app.clients.util import util_get_cols +from app.clients.service.logic import clean_input_data, interpret_and_calculate +from app.clients.schema import PredictionInput + +from selenium import webdriver +from selenium.webdriver.chrome.service import Service +from selenium.webdriver.chrome.options import Options +from webdriver_manager.chrome import ChromeDriverManager +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.support.select import Select +from selenium.common.exceptions import NoSuchElementException, TimeoutException +import time + +# 7-3-1 Test Model Selection Logic in /predict Endpoint +# Test if different model_name values result in the correct model being instantiated. +# Verify that the default model is used when model_name is not specified. +# Simulate various input data and check if the output format is as expected. +# Mock different models to verify if the correct model class is being called. + +# Test data with string values for categorical fields +test_model = { + "age": 18, + "gender": "Female", + "work_experience": 3, + "canada_workex": 0, + "dep_num": 1, + "canada_born": True, + "citizen_status": "Citizen", + "level_of_schooling": "Bachelor", + "fluent_english": True, + "reading_english_scale": 3, + "speaking_english_scale": 1, + "writing_english_scale": 3, + "numeracy_scale": 0, + "computer_scale": 2, + "transportation_bool": False, + "caregiver_bool": True, + "housing": "Stable", + "income_source": "Employment", + "felony_bool": True, + "attending_school": False, + "currently_employed": True, + "substance_use": True, + "time_unemployed": 1, + "need_mental_health_support_bool": False +} + +# Test output (expected cleaned data) +test_output = [18, 1, 3, 0, 1, 1, 0, 5, 1, 3, 1, 3, 0, 2, 0, 1, 5, 1, 1, 0, 1, 1, 1, 0] + +# prediction result +test_prediction_result = { + "baseline": 67.6, + "interventions": [ + (68.7, ["Life Stabilization", "General Employment Assistance Services", + "Specialized Services", "Employment-Related Financial Supports for Job Seekers and Employers"]), + (68.7, ["Life Stabilization", "Specialized Services", + "Employment-Related Financial Supports for Job Seekers and Employers"]), + (69.0, ["Life Stabilization", "Specialized Services"]) + ] +} + +# ordered features for test +test_features = [ + 'age', 'gender', 'work_experience', 'canada_workex', 'dep_num', + 'canada_born', 'citizen_status', 'level_of_schooling', 'fluent_english', + 'reading_english_scale', 'speaking_english_scale', 'writing_english_scale', + 'numeracy_scale', 'computer_scale', 'transportation_bool', 'caregiver_bool', + 'housing', 'income_source', 'felony_bool', 'attending_school', + 'currently_employed', 'substance_use', 'time_unemployed', + 'need_mental_health_support_bool' +] + +@pytest.fixture +def mock_model(): + """Mock the model to return consistent predictions""" + with patch('app.clients.service.model.prepare_models') as mock: + mock_rf = Mock() + mock_rf.predict.return_value = np.array([67.6, 68.7, 68.7, 69.0]) + mock.return_value = mock_rf + yield mock + +def get_data(): + """Helper function to get prediction input data""" + return PredictionInput(**test_model).model_dump(by_alias=True) + +def test_dump_model(): + """test to check the dumped model""" + print("\n#################### test_dump_model() ####################") + refactor_converted = get_data() + # Compare only the fields that should match exactly + matching_fields = ['age', 'work_experience', 'canada_workex', 'dep_num', + 'reading_english_scale', 'speaking_english_scale', + 'writing_english_scale', 'numeracy_scale', 'computer_scale', + 'time_unemployed'] + + all_match = all(refactor_converted[field] == test_model[field] + for field in matching_fields) + + if all_match: + print("PASS\n") + else: + print("FAIL\n") + +def test_clean_input_data(): + """test data type conversion""" + print("\n#################### test_clean_input_data() ####################") + data = get_data() + refactor_output = clean_input_data(data, test_features) + if len(test_output) != len(refactor_output): + print("FAIL: len not equals\n") + return + for i in range(len(test_output)): + if test_output[i] != refactor_output[i]: + print(f"FAIL: the {i}th element not equals. origin:{test_output[i]}, refactor:{refactor_output[i]}\n") + return + print("PASS\n") + +def test_prediction(mock_model): + """test the whole prediction process""" + print("\n#################### test_prediction() ####################") + data = get_data() + result = interpret_and_calculate(data) + if result == test_prediction_result: + print("PASS\n") + else: + print("FAIL\n") + +def test_column_order(): + """Test if column order matches expected order""" + print("\n#################### test_column_order() ####################") + cols = util_get_cols() + if cols == test_features: + print("PASS") + else: + print("FAIL") + +# Additional tests for model selection logic +def test_model_output_format(mock_model): + """Test if model output follows expected format""" + print("\n#################### test_model_output_format() ####################") + data = get_data() + result = interpret_and_calculate(data) + + # Check result structure + if not isinstance(result, dict): + print("FAIL: Result is not a dictionary\n") + return + if "baseline" not in result or "interventions" not in result: + print("FAIL: Missing required keys in result\n") + return + if not isinstance(result["baseline"], float): + print("FAIL: Baseline is not a float\n") + return + if not isinstance(result["interventions"], list): + print("FAIL: Interventions is not a list\n") + return + + print("PASS\n") + +def test_intervention_combinations(mock_model): + """Test if model generates valid intervention combinations""" + print("\n#################### test_intervention_combinations() ####################") + data = get_data() + result = interpret_and_calculate(data) + + valid_interventions = [ + "Life Stabilization", + "General Employment Assistance Services", + "Retention Services", + "Specialized Services", + "Employment-Related Financial Supports for Job Seekers and Employers", + "Employer Financial Supports", + "Enhanced Referrals for Skills Development" + ] + + for _, interventions in result["interventions"]: + if not all(i in valid_interventions for i in interventions): + print("FAIL: Invalid intervention found\n") + return + + print("PASS\n") + +def test_prediction_values(mock_model): + """Test if prediction values are within valid range""" + print("\n#################### test_prediction_values() ####################") + data = get_data() + result = interpret_and_calculate(data) + + if not (0 <= result["baseline"] <= 100): + print("FAIL: Baseline prediction out of range\n") + return + + for prob, _ in result["interventions"]: + if not (0 <= prob <= 100): + print("FAIL: Intervention prediction out of range\n") + return + if prob < result["baseline"]: + print("FAIL: Intervention prediction lower than baseline\n") + return + + print("PASS\n") + + + +#7-3-2 Test Data Processing Logic of interpret_and_calculate Function +# Test the function's ability to handle different input data formats (e.g., numbers, strings,missing values). +# Simulate potential erroneous inputs, such as missing fields or type errors, and ensure that the function returns appropriate error messages. +# Verify that the function can correctly format input data into the format required by the model. +def test_missing_fields(): + """Test handling of missing fields""" + print("\n#################### test_missing_fields() ####################") + + # Remove required fields + invalid_data = test_model.copy() + del invalid_data['age'] + del invalid_data['gender'] + + try: + PredictionInput(**invalid_data) + print("FAIL: Should raise validation error for missing fields\n") + except Exception as e: + if "age" in str(e) and "gender" in str(e): + print("PASS\n") + else: + print(f"FAIL: Unexpected error message: {str(e)}\n") + +def test_invalid_types(): + """Test handling of invalid data types""" + print("\n#################### test_invalid_types() ####################") + + test_cases = [ + {"field": "age", "value": "invalid_age", "expected_error": "type_error"}, + {"field": "gender", "value": 123, "expected_error": "string_type"}, + {"field": "canada_born", "value": "not_boolean", "expected_error": "bool_type"}, + {"field": "reading_english_scale", "value": "high", "expected_error": "type_error"} + ] + + passes = 0 + total = len(test_cases) + + for case in test_cases: + invalid_data = test_model.copy() + invalid_data[case["field"]] = case["value"] + + try: + PredictionInput(**invalid_data) + print(f"FAIL: Should raise validation error for {case['field']}\n") + except Exception as e: + if case["expected_error"] in str(e).lower(): + passes += 1 + else: + print(f"FAIL: Unexpected error message for {case['field']}: {str(e)}\n") + + if passes == total: + print("PASS: All type validations working\n") + else: + print(f"FAIL: {total - passes} type validations failed\n") + +def test_empty_values(): + """Test handling of empty values""" + print("\n#################### test_empty_values() ####################") + + test_cases = [ + {"field": "gender", "value": ""}, + {"field": "citizen_status", "value": ""}, + {"field": "housing", "value": ""} + ] + + passes = 0 + total = len(test_cases) + + for case in test_cases: + invalid_data = test_model.copy() + invalid_data[case["field"]] = case["value"] + + try: + PredictionInput(**invalid_data) + print(f"FAIL: Should raise validation error for empty {case['field']}\n") + except Exception as e: + if "empty" in str(e).lower() or "blank" in str(e).lower(): + passes += 1 + else: + print(f"FAIL: Unexpected error message for {case['field']}: {str(e)}\n") + + if passes == total: + print("PASS: All empty value validations working\n") + else: + print(f"FAIL: {total - passes} empty value validations failed\n") + +def test_out_of_range_values(): + """Test handling of out-of-range values""" + print("\n#################### test_out_of_range_values() ####################") + + test_cases = [ + {"field": "age", "value": -1}, + {"field": "age", "value": 150}, + {"field": "reading_english_scale", "value": 6}, + {"field": "time_unemployed", "value": -1} + ] + + passes = 0 + total = len(test_cases) + + for case in test_cases: + invalid_data = test_model.copy() + invalid_data[case["field"]] = case["value"] + + try: + PredictionInput(**invalid_data) + print(f"FAIL: Should raise validation error for out-of-range {case['field']}\n") + except Exception as e: + if "range" in str(e).lower() or "greater than" in str(e).lower() or "less than" in str(e).lower(): + passes += 1 + else: + print(f"FAIL: Unexpected error message for {case['field']}: {str(e)}\n") + + if passes == total: + print("PASS: All range validations working\n") + else: + print(f"FAIL: {total - passes} range validations failed\n") + +def test_data_cleaning(mock_model): + """Test data cleaning and formatting""" + print("\n#################### test_data_cleaning() ####################") + + # Test boolean conversion + boolean_variations = { + "fluent_english": [True, "True", "true", 1, "1"], + "transportation_bool": [False, "False", "false", 0, "0"], + } + + passes = 0 + total = len(boolean_variations) * len(list(boolean_variations.values())[0]) + + for field, values in boolean_variations.items(): + for value in values: + test_data = test_model.copy() + test_data[field] = value + + try: + data = PredictionInput(**test_data).model_dump(by_alias=True) + cleaned_data = clean_input_data(data, util_get_cols()) + if isinstance(cleaned_data[util_get_cols().index(field)], int): + passes += 1 + else: + print(f"FAIL: Boolean conversion failed for {field} = {value}\n") + except Exception as e: + print(f"FAIL: Error processing {field} = {value}: {str(e)}\n") + + if passes == total: + print("PASS: All boolean conversions working\n") + else: + print(f"FAIL: {total - passes} boolean conversions failed\n") + +def test_categorical_encoding(): + """Test categorical field encoding""" + print("\n#################### test_categorical_encoding() ####################") + + # Test different categorical values + categorical_variations = { + "gender": ["Female", "Male", "Other"], + "citizen_status": ["Citizen", "Permanent Resident", "Other"], + "housing": ["Stable", "Temporary", "None"] + } + + passes = 0 + total = len(categorical_variations) + + for field, values in categorical_variations.items(): + try: + for value in values: + test_data = test_model.copy() + test_data[field] = value + data = PredictionInput(**test_data).model_dump(by_alias=True) + cleaned_data = clean_input_data(data, util_get_cols()) + if isinstance(cleaned_data[util_get_cols().index(field)], (int, float)): + passes += 1 + else: + print(f"FAIL: Categorical encoding failed for {field} = {value}\n") + break + except Exception as e: + print(f"FAIL: Error processing {field}: {str(e)}\n") + + if passes == len(categorical_variations): + print("PASS: All categorical encodings working\n") + else: + print(f"FAIL: {total - passes} categorical encodings failed\n") + +def test_numeric_processing(): + """Test numeric field processing""" + print("\n#################### test_numeric_processing() ####################") + + numeric_fields = ['age', 'work_experience', 'dep_num', 'reading_english_scale'] + numeric_variations = { + 'age': [18, "18", 18.0], + 'work_experience': [3, "3", 3.0], + 'dep_num': [1, "1", 1.0], + 'reading_english_scale': [3, "3", 3.0] + } + + passes = 0 + total = len(numeric_fields) * len(list(numeric_variations.values())[0]) + + for field, values in numeric_variations.items(): + for value in values: + test_data = test_model.copy() + test_data[field] = value + + try: + data = PredictionInput(**test_data).model_dump(by_alias=True) + cleaned_data = clean_input_data(data, util_get_cols()) + if isinstance(cleaned_data[util_get_cols().index(field)], (int, float)): + passes += 1 + else: + print(f"FAIL: Numeric processing failed for {field} = {value}\n") + except Exception as e: + print(f"FAIL: Error processing {field} = {value}: {str(e)}\n") + + if passes == total: + print("PASS: All numeric processing working\n") + else: + print(f"FAIL: {total - passes} numeric processing failed\n") + +# 7-3-3 Test Frontend Validation and Form Submission +# Verify that validation rules for each input field in the form are enforced (e.g., age should be 18-65, required fields cannot be empty). +# Test the JavaScript submitForm() function to ensure it properly converts form data into JSON format and sends it to the /predict endpoint. +# Simulate different response statuses from the backend (e.g., 200, 400, 500) and check if the frontend handles these responses correctly and displays appropriate messages to the user. + +@pytest.fixture +def driver(): + """Setup Chrome WebDriver""" + chrome_options = Options() + service = Service(ChromeDriverManager().install()) + driver = webdriver.Chrome(service=service, options=chrome_options) + driver.get("http://localhost:3000/form") + driver.implicitly_wait(2) + yield driver + driver.quit() + +def find_element_safe(driver, by, value, timeout=5): + """Safely find an element with wait and error handling""" + try: + element = WebDriverWait(driver, timeout).until( + EC.presence_of_element_located((by, value)) + ) + return element + except (TimeoutException, NoSuchElementException): + print(f"Element not found: {value}") + return None + +def test_required_fields(driver): + """Test validation of required fields""" + print("\n#################### test_required_fields() ####################") + + # Find submit button (Material-UI button) + submit_button = find_element_safe( + driver, + By.CSS_SELECTOR, + "button[type='submit']" + ) + + if not submit_button: + print("FAIL: Submit button not found\n") + return + + # Click submit with empty form + submit_button.click() + time.sleep(1) # Wait for validation messages + + # Check for Material-UI error messages + required_fields = ["age", "gender", "work_experience", "level_of_schooling"] + error_found = False + + for field in required_fields: + # Check for MUI error helper text + error_text = find_element_safe( + driver, + By.CSS_SELECTOR, + f"[name='{field}'] + .MuiFormHelperText-root.Mui-error" + ) + if error_text: + error_found = True + break + + if error_found: + print("PASS: Required field validation working\n") + else: + print("FAIL: No error messages found for required fields\n") + +def test_numeric_validation(driver): + """Test numeric field validation""" + print("\n#################### test_numeric_validation() ####################") + + numeric_tests = [ + {"name": "age", "invalid": "-1", "valid": "25", "min": 18, "max": 65}, + {"name": "reading_english_scale", "invalid": "11", "valid": "5", "min": 0, "max": 10}, + {"name": "speaking_english_scale", "invalid": "11", "valid": "5", "min": 0, "max": 10} + ] + + passes = 0 + total = len(numeric_tests) * 2 # Testing both invalid and valid values + + for test in numeric_tests: + input_field = find_element_safe( + driver, + By.CSS_SELECTOR, + f"input[name='{test['name']}']" + ) + + if not input_field: + continue + + # Test invalid value + input_field.clear() + input_field.send_keys(test["invalid"]) + input_field.click() # Trigger blur event + + # Check for error + error_message = find_element_safe( + driver, + By.CSS_SELECTOR, + f"[name='{test['name']}'] + .MuiFormHelperText-root.Mui-error" + ) + if error_message: + passes += 1 + + # Test valid value + input_field.clear() + input_field.send_keys(test["valid"]) + input_field.click() + + # Error should be gone + error_message = driver.find_elements( + By.CSS_SELECTOR, + f"[name='{test['name']}'] + .MuiFormHelperText-root.Mui-error" + ) + if not error_message: + passes += 1 + + if passes == total: + print("PASS: Numeric validation working\n") + else: + print(f"FAIL: {total - passes} numeric validations failed\n") + + +def test_clear_form(driver): + """Test clear form functionality""" + print("\n#################### test_clear_form() ####################") + + # Fill some fields + test_data = { + "age": "25", + "work_experience": "3", + "reading_english_scale": "5" + } + + for name, value in test_data.items(): + element = find_element_safe(driver, By.NAME, name) + if element: + element.clear() + element.send_keys(value) + + # Click clear button + clear_button = find_element_safe( + driver, + By.CSS_SELECTOR, + "button[color='secondary']" + ) + + if clear_button: + clear_button.click() + time.sleep(1) # Wait for form to clear + + # Check if fields are cleared + all_cleared = True + for name in test_data.keys(): + element = find_element_safe(driver, By.NAME, name) + if element and element.get_attribute("value") != "0": + all_cleared = False + break + + if all_cleared: + print("PASS: Form cleared successfully\n") + else: + print("FAIL: Form not properly cleared\n") + else: + print("FAIL: Clear button not found\n") -from itertools import product +def test_checkbox_toggle(driver): + """Test checkbox functionality""" + print("\n#################### test_checkbox_toggle() ####################") + + checkbox_fields = [ + "canada_born", + "fluent_english", + "transportation_bool", + "caregiver_bool" + ] + + passes = 0 + total = len(checkbox_fields) + + for field in checkbox_fields: + checkbox = find_element_safe( + driver, + By.CSS_SELECTOR, + f"input[name='{field}'][type='checkbox']" + ) + + if checkbox: + # Test toggle + initial_state = checkbox.is_selected() + checkbox.click() + new_state = checkbox.is_selected() + + if initial_state != new_state: + passes += 1 + else: + print(f"FAIL: Checkbox {field} not toggling properly\n") + else: + print(f"FAIL: Checkbox {field} not found\n") + + if passes == total: + print("PASS: All checkboxes working\n") + else: + print(f"FAIL: {total - passes} checkbox tests failed\n") + + +# 7-3-4 Test Input Data Validation for /predict Endpoint +# Test if the endpoint returns appropriate errors when required fields are missing. +# Simulate various types of input data (e.g., negative numbers, overly long strings, non-JSON formats) and ensure the endpoint can handle them and return clear error messages. +# Verify that type conversion in the input data is handled correctly (e.g., converting "Yes" and "No" to boolean values). +client = TestClient(app) +def test_valid_input(): + """Test endpoint with valid input data""" + print("\n#################### test_valid_input() ####################") + response = client.post("/predict", json=test_model) + + if response.status_code == 200: + result = response.json() + if "baseline" in result and "interventions" in result: + print("PASS\n") + return + print(f"FAIL: Invalid response for valid input: {response.json()}\n") + +def test_missing_required_fields(): + """Test endpoint with missing required fields""" + print("\n#################### test_missing_required_fields() ####################") + + required_fields = [ + "age", "gender", "work_experience", "level_of_schooling", + "reading_english_scale", "speaking_english_scale", "writing_english_scale" + ] + + passes = 0 + total = len(required_fields) + + for field in required_fields: + invalid_data = test_model.copy() + del invalid_data[field] + + response = client.post("/predict", json=invalid_data) + if response.status_code == 422: # FastAPI validation error status code + error_detail = response.json().get("detail", []) + if any(field in str(err) for err in error_detail): + passes += 1 + else: + print(f"FAIL: Missing appropriate error message for {field}\n") + else: + print(f"FAIL: Incorrect status code for missing {field}: {response.status_code}\n") + + if passes == total: + print("PASS: All missing field validations working\n") + else: + print(f"FAIL: {total - passes} missing field validations failed\n") + +def test_invalid_numeric_values(): + """Test endpoint with invalid numeric values""" + print("\n#################### test_invalid_numeric_values() ####################") + + numeric_test_cases = [ + {"field": "age", "value": -1, "error_type": "value_error"}, + {"field": "age", "value": 150, "error_type": "value_error"}, + {"field": "work_experience", "value": -5, "error_type": "value_error"}, + {"field": "reading_english_scale", "value": 6, "error_type": "value_error"}, + {"field": "dep_num", "value": -2, "error_type": "value_error"} + ] + + passes = 0 + total = len(numeric_test_cases) + + for case in numeric_test_cases: + test_data = test_model.copy() + test_data[case["field"]] = case["value"] + + response = client.post("/predict", json=test_data) + if response.status_code == 422: + error_detail = response.json().get("detail", []) + if any(case["error_type"] in str(err) for err in error_detail): + passes += 1 + else: + print(f"FAIL: Missing appropriate error message for {case['field']} = {case['value']}\n") + else: + print(f"FAIL: Incorrect status code for invalid {case['field']}: {response.status_code}\n") + + if passes == total: + print("PASS: All numeric validations working\n") + else: + print(f"FAIL: {total - passes} numeric validations failed\n") + +def test_invalid_string_lengths(): + """Test endpoint with overly long strings""" + print("\n#################### test_invalid_string_lengths() ####################") + + long_string = "a" * 1001 # String longer than maximum allowed length + string_test_cases = [ + {"field": "gender", "value": long_string}, + {"field": "citizen_status", "value": long_string}, + {"field": "housing", "value": long_string} + ] + + passes = 0 + total = len(string_test_cases) + + for case in string_test_cases: + test_data = test_model.copy() + test_data[case["field"]] = case["value"] + + response = client.post("/predict", json=test_data) + if response.status_code == 422: + error_detail = response.json().get("detail", []) + if any("length" in str(err).lower() for err in error_detail): + passes += 1 + else: + print(f"FAIL: Missing appropriate error message for long {case['field']}\n") + else: + print(f"FAIL: Incorrect status code for long {case['field']}: {response.status_code}\n") + + if passes == total: + print("PASS: All string length validations working\n") + else: + print(f"FAIL: {total - passes} string length validations failed\n") + +def test_boolean_conversion(): + """Test endpoint with various boolean value formats""" + print("\n#################### test_boolean_conversion() ####################") + + boolean_test_cases = [ + {"field": "canada_born", "values": ["true", "True", "1", True, "yes", "Yes"]}, + {"field": "fluent_english", "values": ["false", "False", "0", False, "no", "No"]} + ] + + passes = 0 + total = sum(len(case["values"]) for case in boolean_test_cases) + + for case in boolean_test_cases: + for value in case["values"]: + test_data = test_model.copy() + test_data[case["field"]] = value + + response = client.post("/predict", json=test_data) + if response.status_code == 200: + passes += 1 + else: + print(f"FAIL: Boolean conversion failed for {case['field']} = {value}\n") + + if passes == total: + print("PASS: All boolean conversions working\n") + else: + print(f"FAIL: {total - passes} boolean conversions failed\n") + +def test_invalid_json(): + """Test endpoint with invalid JSON format""" + print("\n#################### test_invalid_json() ####################") + + invalid_json_cases = [ + { + "description": "Invalid JSON syntax", + "content": b"{invalid_json" + }, + { + "description": "Plain text", + "content": b"not_json_at_all" + }, + { + "description": "Valid JSON but wrong format", + "content": b"[1, 2, 3]" + }, + { + "description": "Null value", + "content": b"null" + } + ] + + passes = 0 + total = len(invalid_json_cases) + + for case in invalid_json_cases: + response = client.post( + "/predict", + headers={"Content-Type": "application/json"}, + content=case["content"] # Using content with bytes + ) + + if response.status_code in [400, 422]: # Either is acceptable for invalid JSON + passes += 1 + else: + print(f"FAIL: Incorrect status code for {case['description']}: {response.status_code}\n") + + if passes == total: + print("PASS: All invalid JSON cases handled correctly\n") + else: + print(f"FAIL: {total - passes} invalid JSON cases failed\n") + +def test_content_type_validation(): + """Test endpoint with incorrect content types""" + print("\n#################### test_content_type_validation() ####################") + + content_type_cases = [ + { + "content_type": "text/plain", + "content": b"plain text" + }, + { + "content_type": "application/xml", + "content": b"data" + }, + { + "content_type": "multipart/form-data", + "content": json.dumps(test_model).encode() + } + ] + + passes = 0 + total = len(content_type_cases) + + for case in content_type_cases: + response = client.post( + "/predict", + headers={"Content-Type": case["content_type"]}, + content=case["content"] + ) + + if response.status_code in [400, 415]: + passes += 1 + else: + print(f"FAIL: Incorrect status code for content type {case['content_type']}: {response.status_code}\n") + + if passes == total: + print("PASS: All content type validations working\n") + else: + print(f"FAIL: {total - passes} content type validations failed\n") + +def test_empty_request(): + """Test endpoint with empty request body""" + print("\n#################### test_empty_request() ####################") + + response = client.post("/predict", json={}) + + if response.status_code == 422: + error_detail = response.json().get("detail", []) + if any("required" in str(err).lower() for err in error_detail): + print("PASS\n") + return + print(f"FAIL: Incorrect handling of empty request: {response.status_code}\n") + + +# def test_form_submission(driver): +# """Test form submission""" +# print("\n#################### test_form_submission() ####################") + +# try: +# # Print page title for debugging +# print(f"Page Title: {driver.title}") + +# # Fill text fields +# text_fields = { +# "age": "25", +# "work_experience": "3", +# "reading_english_scale": "5", +# "speaking_english_scale": "5", +# "writing_english_scale": "5" +# } + +# for name, value in text_fields.items(): +# try: +# element = WebDriverWait(driver, 10).until( +# EC.presence_of_element_located((By.NAME, name)) +# ) +# element.clear() +# element.send_keys(value) +# print(f"Successfully filled {name} with {value}") +# except Exception as e: +# print(f"Error filling {name}: {str(e)}") +# raise + +# # Handle Material-UI select fields +# select_fields = { +# "gender": "Female", +# "level_of_schooling": "Bachelor's degree" +# } + +# for name, value in select_fields.items(): +# try: +# # Print available elements for debugging +# print(f"\nLooking for {name} select field...") +# elements = driver.find_elements(By.CSS_SELECTOR, f'label:contains("{name.replace("_", " ").title()}")') +# print(f"Found {len(elements)} potential elements for {name}") + +# # Try different selectors for the select field +# select_selectors = [ +# f'//label[contains(text(), "{name.replace("_", " ").title()}")]/following-sibling::div', +# f'.MuiFormControl-root:has(label[contains(text(), "{name.replace("_", " ").title()}")]) .MuiSelect-select', +# f'[aria-label="{name.replace("_", " ").title()}"]' +# ] + +# select_element = None +# for selector in select_selectors: +# try: +# print(f"Trying selector: {selector}") +# if selector.startswith('//'): +# select_element = WebDriverWait(driver, 3).until( +# EC.element_to_be_clickable((By.XPATH, selector)) +# ) +# else: +# select_element = WebDriverWait(driver, 3).until( +# EC.element_to_be_clickable((By.CSS_SELECTOR, selector)) +# ) +# if select_element: +# print(f"Found select element for {name}") +# break +# except: +# continue + +# if not select_element: +# print(f"Could not find select element for {name}") +# # Try JavaScript click on the Select component +# js_script = f""" +# const labels = Array.from(document.querySelectorAll('label')); +# const label = labels.find(l => l.textContent.includes('{name.replace("_", " ").title()}')); +# if (label) {{ +# const select = label.parentElement.querySelector('.MuiSelect-select'); +# if (select) select.click(); +# }} +# """ +# driver.execute_script(js_script) +# time.sleep(1) +# else: +# driver.execute_script("arguments[0].scrollIntoView(true);", select_element) +# driver.execute_script("arguments[0].click();", select_element) +# time.sleep(1) + +# # Try to find the option +# print(f"Looking for option: {value}") +# option_selectors = [ +# f'//li[contains(@class, "MuiMenuItem-root") and text()="{value}"]', +# f'.MuiPopover-paper li[data-value="{value}"]', +# f'.MuiMenu-paper li:contains("{value}")' +# ] + +# option_found = False +# for selector in option_selectors: +# try: +# print(f"Trying option selector: {selector}") +# if selector.startswith('//'): +# option = WebDriverWait(driver, 3).until( +# EC.element_to_be_clickable((By.XPATH, selector)) +# ) +# else: +# option = WebDriverWait(driver, 3).until( +# EC.element_to_be_clickable((By.CSS_SELECTOR, selector)) +# ) +# driver.execute_script("arguments[0].click();", option) +# option_found = True +# print(f"Successfully selected option {value} for {name}") +# break +# except: +# continue + +# if not option_found: +# print(f"Could not find option {value} for {name}") +# raise Exception(f"Option {value} not found for {name}") + +# except Exception as e: +# print(f"Error handling select field {name}: {str(e)}") +# raise + +# time.sleep(1) + +# # Submit form +# try: +# # Try different submit button selectors +# submit_selectors = [ +# 'button[type="submit"]', +# 'button.MuiButton-containedPrimary', +# '//button[contains(text(), "Submit")]' +# ] + +# submit_button = None +# for selector in submit_selectors: +# try: +# print(f"Trying submit button selector: {selector}") +# if selector.startswith('//'): +# submit_button = WebDriverWait(driver, 3).until( +# EC.element_to_be_clickable((By.XPATH, selector)) +# ) +# else: +# submit_button = WebDriverWait(driver, 3).until( +# EC.element_to_be_clickable((By.CSS_SELECTOR, selector)) +# ) +# if submit_button: +# break +# except: +# continue + +# if submit_button: +# driver.execute_script("arguments[0].scrollIntoView(true);", submit_button) +# driver.execute_script("arguments[0].click();", submit_button) +# print("Form submitted") + +# WebDriverWait(driver, 10).until( +# lambda d: "/results" in d.current_url +# ) +# print("PASS: Form submitted successfully\n") +# else: +# print("FAIL: Submit button not found\n") +# raise Exception("Submit button not found") + +# except Exception as e: +# print(f"Error submitting form: {str(e)}") +# raise + +# except Exception as e: +# print(f"FAIL: Error during form submission: {str(e)}\n") +# raise e + + +# # Add debugging helper +# def print_elements(driver): +# """Helper function to print visible elements""" +# elements = driver.find_elements(By.CSS_SELECTOR, '*') +# for element in elements: +# try: +# if element.is_displayed(): +# tag_name = element.tag_name +# class_name = element.get_attribute('class') +# element_text = element.text +# print(f"Tag: {tag_name}, Class: {class_name}, Text: {element_text}") +# except: +# continue + +# # raw data from front end +# test_model = { +# "age": "18", +# "gender": "M", +# "work_experience": "3", +# "canada_workex": 0, +# "dep_num": "1", +# "canada_born": "true", +# "citizen_status": "citizen", +# "level_of_schooling": "Grade 12 or equivalent", +# "fluent_english": "true", +# "reading_english_scale": "3", +# "speaking_english_scale": "1", +# "writing_english_scale": "3", +# "numeracy_scale": 0, +# "computer_scale": "2", +# "transportation_bool": "false", +# "caregiver_bool": "true", +# "housing": "Living with family/friend", +# "income_source": "No Source of Income", +# "felony_bool": "true", +# "attending_school": "false", +# "currently_employed": "true", +# "substance_use": "true", +# "time_unemployed": "1", +# "need_mental_health_support_bool": "false" +# } + +# # the converted data +# test_converted = {'age': 18, 'gender': 1, 'work_experience': 3, 'canada_workex': 0, 'dep_num': 1, 'canada_born': True, +# 'citizen_status': 0, 'level_of_schooling': 5, 'fluent_english': True, 'reading_english_scale': 3, +# 'speaking_english_scale': 1, 'writing_english_scale': 3, 'numeracy_scale': 0, 'computer_scale': 2, +# 'transportation_bool': False, 'caregiver_bool': True, 'housing': 5, 'income_source': 1, +# 'felony_bool': True, 'attending_school': False, 'currently_employed': True, 'substance_use': True, +# 'time_unemployed': 1, 'need_mental_health_support_bool': False} + +# # output after data converting +# test_output = [18, 1, 3, 0, 1, 1, 0, 5, 1, 3, 1, 3, 0, 2, 0, 1, 5, 1, 1, 0, 1, 1, 1, 0] + +# # prediction result +# test_prediction_result = { +# "baseline": 67.6, +# "interventions": [ +# (68.7, ["Life Stabilization", "General Employment Assistance Services", "Specialized Services", "Employment-Related Financial Supports for Job Seekers and Employers"]), +# (68.7, ["Life Stabilization", "Specialized Services", "Employment-Related Financial Supports for Job Seekers and Employers"]), +# (69.0, ["Life Stabilization", "Specialized Services"])] +# } + + + +# # ordered features for test +# test_features = ['age', 'gender', 'work_experience', 'canada_workex', 'dep_num', 'canada_born', 'citizen_status', +# 'level_of_schooling', 'fluent_english', 'reading_english_scale', 'speaking_english_scale', +# 'writing_english_scale', 'numeracy_scale', 'computer_scale', 'transportation_bool', +# 'caregiver_bool', 'housing', 'income_source', 'felony_bool', 'attending_school', +# 'currently_employed', 'substance_use', 'time_unemployed', 'need_mental_health_support_bool'] + + +# def get_data(): +# return PredictionInput(**test_model).model_dump(by_alias=True) + + +# def test_dump_model(): +# """test to check the dumped model""" +# print("\n#################### test_dump_model() ####################") +# refactor_converted = get_data() +# if refactor_converted == test_converted: +# print("PASS\n") +# else: +# print("FAIL\n") + + +# def test_clean_input_data(): +# """test data type conversion""" +# print("\n#################### test_clean_input_data() ####################") +# data = get_data() +# refactor_output = clean_input_data(data, test_features) + +# if len(test_output) != len(refactor_output): +# print("FAIL: len not equals\n") +# return + +# for i in range(len(test_output)): +# if test_output[i] != refactor_output[i]: +# print("FAIL: the {} th element not equals. origin:{}, refactor:{}\n".format(i, test_output[i], refactor_output[i])) +# return +# print("PASS\n") + + +# def test_prediction(): +# """test the whole prediction process""" +# print("\n#################### test_prediction() ####################") +# data = get_data() +# result = interpret_and_calculate(data) +# if result == test_prediction_result: +# print("PASS\n") +# else: +# print("FAIL\n") -# Cartesian product of [0, 1] repeated 2 times -result = list(product([0, 1], repeat=2)) +# #################### Test Data and Methods #################### -# Output: [(0, 0), (0, 1), (1, 0), (1, 1)] -print(result) +# # original order of columns: +# test_original_cols = ['age', 'gender', 'work_experience', 'canada_workex', 'dep_num', 'canada_born', 'citizen_status', +# 'level_of_schooling', 'fluent_english', 'reading_english_scale', 'speaking_english_scale', +# 'writing_english_scale', 'numeracy_scale', 'computer_scale', 'transportation_bool', +# 'caregiver_bool', 'housing', 'income_source', 'felony_bool', 'attending_school', +# 'currently_employed', 'substance_use', 'time_unemployed', 'need_mental_health_support_bool'] -result = list(combinations_with_replacement([0, 1], 2)) -# Output: [(0, 0), (0, 1), (1, 1)] -print(result) \ No newline at end of file +# def test_column_order(): +# print("\n#################### test_data_type_conversion() ####################") +# cols = util_get_cols() +# # print(cols) +# if cols == test_original_cols: +# print("PASS") +# else: +# print("FAIL") \ No newline at end of file From 2cc1df26c6996fc991ac6b8b550e1b5335662c8f Mon Sep 17 00:00:00 2001 From: DJ Date: Sun, 17 Nov 2024 22:59:34 -0800 Subject: [PATCH 12/29] modelchangingfeature --- app/clients/.env | 12 ++- .../service/gradient_boosting_model.pkl | Bin 0 -> 131759 bytes app/clients/service/logic.py | 11 +-- app/clients/service/model.py | 90 +++++++++++------- app/clients/service/random_forest_model.pkl | Bin 0 -> 752767 bytes app/clients/service/svr_model.pkl | Bin 0 -> 29854 bytes app/clients/util.py | 23 ++++- 7 files changed, 90 insertions(+), 46 deletions(-) create mode 100644 app/clients/service/gradient_boosting_model.pkl create mode 100644 app/clients/service/random_forest_model.pkl create mode 100644 app/clients/service/svr_model.pkl diff --git a/app/clients/.env b/app/clients/.env index ac79a16a..a6936ec6 100644 --- a/app/clients/.env +++ b/app/clients/.env @@ -22,4 +22,14 @@ FEATURE_COLS_IN_SEQ=["age", "gender", "work_experience", "canada_workex", "dep_n # 'currently_employed', #currently employed bool # 'substance_use', #disorder, bool # 'time_unemployed', #number of years unemployed -# 'need_mental_health_support_bool'] #need support \ No newline at end of file +# 'need_mental_health_support_bool'] #need support + +# MODEL_TYPE=GradientBoostingRegressor # Options: RandomForestRegressor, LinearRegression, GradientBoostingRegressor, SVR +# MODEL_OUTPUT_NAME=gradient_boosting_model.pkl + +# MODEL_TYPE=RandomForestRegressor +# MODEL_OUTPUT_NAME=random_forest_model.pkl + +MODEL_TYPE=SVR +MODEL_OUTPUT_NAME=svr_model.pkl + diff --git a/app/clients/service/gradient_boosting_model.pkl b/app/clients/service/gradient_boosting_model.pkl new file mode 100644 index 0000000000000000000000000000000000000000..45e4428709f1528672d53e236d8c9d0828bf9c1d GIT binary patch literal 131759 zcmdqK2Uru!_dXtakq**(?;TNEMv8(6f)u40I-&O>0)hoW5kXNA8(6TRAlOB+_6mZa za;*p|AVm-hBFaAy$4ipCpXA2p|NQRPn1^w8_w1aRIrGkY&dhGIS+`;^Oqj_}fkfvD8&Rtv z(%}N0=zug_Xh=X(GO=bQ&IMeP`QVVaBz%b@OTo;^+lEKSB@=aAPCOix5E4MtY}!48 zg5q!iQE~WyX$M)uV~DCc7w{wm#01Ai;}Vl5Tf(`3?dOHq{(F<3#sZF%kc7Zk;td@! z1$>hQPil;di4C4og*!DMVM;h5sU*KZI3*w|JUC#gVz7qOT33LmC$Slc!nh!OKup+V zc`Qk>QN&9mXLa^T+vpVV#r&!$j##Y{N4Wyg7+g|92(fkJh@zA7r29{{DDU)!nYx$_ zN9sW#Xf0EDUD81T`+%rWH&WNyP4(75cIGLT&tbi{dE-oQ9 z4TmRMba+4vv55tOVq=JX6_YgW7*`A~C@LT^ajHl7!()hTMC=IMa$>tBhm_!T3pgEq z9{YPtutdeCmdu}kCdP^fq$)=;b8^e72M6KMY~c#H7ig z8b-W^H9CaY5(S*FA&5rAN$gW%(?v}h6n6|RHaRISIVq875KP3O3)`!tU}j8mblh^? zpxA^E-RR_~r0{@*gaG0ld2k6KQe;jd;B~HN$n}M#eu3-tWjb{9fS-2AXBK+b>74Ys*f#4|xyb72XkrkUk zQ7m?{SU(~N&V)@pIhb^R8BD=U+mN8}$+F#v$EjN$&xPkM;G6$(e80Xz@3DfDYU@_5%GAkz1CvA5B4@soXt)h zQQ_{jd3spstC_);cbs3XD^}!x*^6CXlw(!0a%GhF+*NH=OJkMxMtSR&nFSG@} zJhk4Y{ny~&o*q?v!Qw!&iz?Pf@yHXjvTct@-@K$J>~bV|7fH6 zwx8xYQ*Zgor1*}Xaaaegfy3?X?#5TCe>rNbJM~>5q0oO+V(8ISL% zCExB|*%G~|d3!`~%=$L=8#`xe#vAzadaqh<_|0ZlD&ma^cAE$j?yLXn`&}EW&t{RW zJ=w3LZWZe{YMEtf9|>?%*L<$}>H^=sO>V*KdA;3TdM|D=U7BGN?2;W(9CZD`#84(* zWzEbIott$g>9=^luG2vBo~FFWdOJhoqP_4Yev=ySTXWBvXP)Y_x_mQuupn_;@j~vm z^JX}F?heXXXWZMA5<9V9I*uLZeCterzD#_!h1)645 zzb|KBDYxqO36Ul9EqBES^nXp&Joe3T>$^03`5EnntjUq%dSaDJ=i?jIG<0jTs)9vI zS}G46E^Zi);eS>V9MW@X!!}nvkbJSnYsZ8~ncs6Z-rcJ%vLS3!Y%Er-5*}13Ha;IuFtyf zpXGf>JWu4&v$aO{KdSv#F8#_jbK#RETI|kNh|BtuL7!3z7tbCXt-WUpJ(8evK&$Dwc}O+qXx@6w_GA zzjt*$Q~Zt^`_`7LJk~8Ks&~KNIk2a%V(381DzkeSp-t&+<%h1yy^i@(Be~i6KH(6% zMWoK9t-0YH_Aj<}kAB`>!sEK5WSiKNvaXbwoMkI3AK?~#w>whmeKWZ*L-!O%*Qn$P z*^+%$o#q}2TAM}|NG({!U;0w3o2T7KuUu@U@v2s-t@~#0P+~V#_#Cl3r24vyg>Ess z;mjZ4ZT8D%3rDfoc<&nxm$frjU^Vb&b!Dmv2wNejRAuy-aL;3mSu@|Fi{8YemRWW zeP*eZ0SB`~&K}iTzd*od@o{j4UVG|it4^aF@$y%rr#FONb$UE^`Gew?vN?0u=PaI^ zEAiM~xP@(*x@6sKc{RCam8IcpjdnTOUfTP7!L282zc(GMW!|JcbFccY?$ZYwmv1Y} zw^H2k)akL0#TGG_FB_~KojBZm8w0N2`22EY)6SDd1?COTwivdD^5quY#z%>09LXR7psw+x6`$yJM4J2%h!K6C%m z6Ry2?R-ND0P~QKd>*}}++daRUJ)CDQd%34v>*ZVCy~H43?{UkTXB5xDC9(~I+*+C4^AKJ@orEs%d*O4uy>WP66)+U&kekejq>b?~_x z9dTyo_B*~>YnRjGzTNGkLPqY`+91EJnlYQqg8jZ{84X)_w1(s#$7hH!&=w;B}?LGvUz9KJ0}^jb022z6wkWGo?o1&d}drUPwmDxd56TJ z9UR5D(5tXdSGA$E#Cnx|vB#S%usE6FSh3LN_KcJMzMXwlH=-N#_v;8B z%xRyOVq-Q(Kk6n+p2ViF<3Z7CO*;Eja%0;L9WE3tN>FS_YHSW>|(}gR89$8f4tH9gCeG%keo~dl8@Er4NL4dy=9& z-Isja?0&?4%b|o%)w>rGX0;BhOM8o7Ws|OuQ{HwpG8Zpe>fX}adncg#V1(fYw#yM- zvsjmTao4?(cM9eIRZ-&3 za$U$C_c`O9>gu^anj7z_Nru0?Ds zg^BN1^D;Z2f3(=em}RyRrAPuKU&b&fWH? zwC?-2$6j}rMllbVUCpkr6+5r)nEcr@bj`hv7cP+^7Z&kbe2G&zb>U;SK-25iaSyK8 zPfN1X`waqBETxIB+irk zn#gvE*HdwMCK4|VpT^|>k(b(Vl7b-^%w**pnI?S!BHx{4<3zuQ=#t}tVv}Qt5eQzQ z3p3@RQVr3?4Q8mfU zX|;hPhUj)3$DecLB&H{bsQ@vp#``*o6Vn=EDo;#L5|67B(^_I)pP1H7v3`STtUr>P z^*heaElG9+M9)rO(r2;;EHL(j!EpWz&~U>*%~Yxc-pY!ko_@Cqq)tDM_yO2W%s-E_ z{Y-hMUx$$e-GiMO<41Eq^z`Gv=a)QDg{cqg&s6$nN=iDgW3Th~u%_k!o9V|9mtXRe z?&tK+kDr;Jmm^YrHbLLbbHMEB@|cAHW~a+e{-09*gnMZkHX$9%fC5vg>MwcrpT{}K z&i~A0n*+0>MmUR}OrS}2-VVSlt@4+!?}=&TPXa`DZQ4f>zzi+<%0!WHru0mp00kz~ zYye;u-k0a+0rGlifS$<$=4S(PyHNhs{_r?#A98sW@VZP+RD&g&N`GiSwDhk!X=VIq zoi`xAuk81T&3b#rR46v)}%pS3?q5nPlm4m?Z{K{T%S8eZ=eMYsdb z%m_GRfb1XP#y>mGg0wuC{FwYaZjR)E6ZznT2|^0E*dw|+lOOC<;DreH0eE5@3Lp0~ zUPTOY;1lslG{PGAjA^q3zG(WyfG;MS3hRNhn7tXL>edT9ghPLGf8p+zvL+~iClkCuq%F6u|_=Om?UwlTiK`}9q>bir&8Tt z< zjg#_!V*)MtHOdZ~m3w>voO4O?@&MkKmOSY?V2M`#@vx`Q|J|qqT_a8f}^->0S>Ar8AxTcMy8thFs*eim3`2?;=KVt{a9$s~nw6C|JfoyU`3XERKYPKw#J zuqiPPMoSByZhAYDae_qHu=@H-1x5*yJ-8BpGe6Ht4MxzoX$^)b><8&D0xN+896eL% z900Sl^J!bGE19Ffw_$5yZjLvk_-rl<`m2NO1Co(D^G&udQJDFirU_@{Icl{p9F~(7)e$&OH?(VuU`@owE4t`uUKyO`PvftqTs~F1{3LnvVbW| zqT%Lq5kz&~CWU#Mgb*W^BcC;`DzJxdY7T8-S3?GK=Nz4eL!&{qW>A&Unm23vVhzE3DJethDof?ebV50QaAp0ks zmjzeWtyAT5&!!rT^cu72g(82gvxz_m7C4m}0+^*Wm?ax(#GRh6M)ejbnbAymoYW=3zX@iH>rYZ^v>w_!W&P2Z8UNqREbS*Vt2dmd`Yzo23s$cIxARes5=e?Y z8(+0b9~d@-`_IgfMaItYVuO^22q*T;(ce3W0oCa@$~dmeBgYBRr?<7}AqgHiSjB)@ zNW&%K$7UX~HAy6Url}EPG4Li%epm^l9q$mHe_h_;@8~-gh{a=5#+fX)4z(u{*yz;Al}!IEG72PZSwZxCcimv>;_Fl!GE z9LNC1)8#P>e#z5ne{S8l71eiAfGnB36@Xb<^1+Jw6&?vIfG8B0N@x9&rvyi`%d)M& zMm)Dc!9*6&n0_ML_Ln@Z@}U?SxY3fAn8{S>zb^x*!y8Sdf0s`WIJOXZqC{0k{k{M& zpNmTYxhGOFKKfb}S#ADfE3dH{D7Vu=w(;pBs>}y=N$fWRS%E6}0UH}oo;B7|lc571 z@~kX*%EJOa)ui=(Oc4WHqxsKi+xHWEkB`35SJnk<*R*bAU4%gnzv(`GR>ls9YQ9%J zp~3a%fg}0MDGJ_Z`pTKNW>GOm*jJR`2tkf?z5{!7R$g6rWEPkO1*TF*0JD_f2nQ+Y zJSzx$vbg%&+zeDVjFxeodo7t!SnkCzICAPuh{fbB2XGLP^wRvLKP5PlGbbTXqw(U! z9IFhV0xLY3W?Rz@4(kbz-2O61XLxdW{J~dFi!BjVe@bwit|kVt20=y-79@*jg1OUA z02ctWl;8;OM>?+nfbn^~ydBG_zzKo{t^V_K{b7ZROklYGtz716nz<(fIC+!w68WV+ z>{kfte}&@Lg3J<;{@3W@OokUhwH|NCcZf)1a1qoV%vLT-oFkr2wFnB^kJjLN zR(V>!_ggxuTTDxyJu_nMD{K-fxIi$2lM*>NXn^8Zm&3ZNV(50O$>mkRxLI#Yg}Oh( zF}~0bF&)vynz^RF}41OJ2 z+o+G2OBg19&(lCwu{-I>4Ok%u^l`C>fXSa1Lg#%XyNmlgW-2$MEa+X~Ko#Jgq%u!91VDR2ca3nx#=)L?s%&dY+ zPdctmH`87{&Z!h@LcL%E%coWUIM;rS+NH}-?Ux>=MvCz@S-c4=8z@;JjjZ6nEI4MT zge*c%5E9CjKxJV5n+3dD$Q++LXK@0i;KF>@C`$x@ai`Zh`9K47FVN~@e=>m;J8|jA z(L5f|BgW_IDys#C3%U$%eZYY1abIE4T~dhm8LwLFYwxl8xQ^VO{bv7truJ`Re3Wi1 zcAL>~hSv(Z!I6A$@PKV5a$*uMSJ3UolFN@`J$W}+U~*Og@`VKxK(BE{NFATqtDDHM z8=>p@wxRAs7OERa>Bf@B0z0r#vTBv}{E4XB#b^zV$KM0xrAER5dAsP-UH=PfBiw@o z@ zzTJ!i!Hl+XuHK{ttd9;=r!3J#&g{A=e=0;CVCVghlduGe>r-LIa zsJYmiGuW}5Zg7M#AJQOW1wm?o`@@%Kpt@mjFu~X$xf`Si0&CK}x;mpLw;fOWaMC?< z_0`WQm1`YZ|bG6`oA9oqx&G zD*yVN*YXN(Nr1e4)#;XZzqM5C?#xtRFj+4AWZMJyUwWA1=E=Q-4xROt7?}fmbR_|Q z>Xl+!cU|Q0*oS>a1;R*$|4va;g{~>|8kLAvlr`E?K~D z{%t_zXc`r`!t!Yurw^OwP2JddhPTdS3>XJQ=%k~@m?*)Kd=;|;8_gDFy{0aWYU>QF zKP~+SR=M2!v^j<;(0xyPRd~pSfyN1`fqP9P+_RBtFc&f!t=Qk%ud(_o+G;remd+Q2*a;tE3%|YduMFokO*S%2;*Dz zUN8jRpzpadg$d@2R@pslB9M;0;QPQHa>&M&4#2}a~Q(L1p9>Nn0kxtL4^CU7v& zGRB^zSJltPhcX-^GVP71Tu_*T>IPGS5!8#+4x`xl8XgB4CYDnTCU_k!{e5G!%o?tu z$9QPTFPN{p*nD3k71M?NL@Cx}<*P{)-eUrUvz=1S4`rq6Ctgx5l3Ok^~mO z0w>e##lQNWmi~KWSd&J$5`gV=dCcE2I$H99_co5qlg@q@`N!waxmoq zqYLa#yxqSXHO5P;d`$S~S9hDFQQM!Ed@ZMdp4=StP2p%@IDH=WGCmOpyA-61V_pk8GmQKrRK2|DmMbk z(=slJvdz0(<)VQ+91T+`05D5S9eS>B{4Bb zKu!Rx-#fvavZsr{S$6S3kFz4kdhw%~IaCSBe_0*1WQj52uOOeYMRO4Qr6rsFP9Hb& zCZ)}wI$taFRF?R#nD8Xv3KrU*Ge2+0}|kWxXOac?VsS}p`sdiPv7xY^)OkMT)@ zrOS%n1bsf_*`!+{K!HbfTve}Mdow2 z?GZ^p4GK)A*){-XX@O(fn(|cxs(uWEWBG4_W5&M(M{?#jie-Pus`ET0nF<_X{VBl_ zPIjd8@&LS?U2fKC@|$kt@2-xcKidky5Hd&d`ttxGL4k(Bl}SJ!R(LA42QW(u+?1bf z3@o_7_!BU$-{Mw&<4O9hP0o-x3J+AM94ur4`|#lsXIXi{@I`x_G+Q?0?cCOtb5BYG zt6Prm@yQCvx0#VEb~+m(HD`NQyQ=nKujTX3*=5FwJl#LO?O?+!P^xrW-89M^$SUiz zi3l13fz}NbU+@BmtWHJg&SV2*aC=kVn>YUlVtoIWIZ`sWz@}AQujkSaj?mah#v=+g z_jpa1q{mS)KWJQVFhNj+De3$u_JW9@!_h&sGC4 z6(14g;86bam?LG(sX1VO*BkRBx|t(n5~Q&(ie)O{dS~)B5d=;j9N9|&%u<3Q`OGa3 zKDIqD-Y2w-ig_{pyaBDjQ8@p$nCcwBuv-H*9XP%fhrYT@36A73TS?%@|F&jKB?)-L z3Qwllp1;6_mj3ZVT)JCE5`o2Zd5klFSz7W{d!M_VwT(x8ybQX*u-(ZYBOAqXB;{&n z-%CUV7uetbya1vE8t$8&sY(rGIOh8Nd4b7;FeirlkJL^ssQW4@!I9klm4Mtu{WG?M z2~=)9z4rI$ttHMiGmhcO?SN^djOGI$RB)vS9Cu&lCVmI%uXYD$ZrnCZSmkOF8?{aa zsB|l+Z9X;=95s=ftJP!%aL&5>n9P}wMax&*z?b)8-)kf+c9xe%oC|NVkF5~_N`6;Z z?=F-;dZay~*#ejm7bo{wdo!&N7VCNQ2G6Jfu@eS@0|JIXDd(J6?+47E2aa&iO{K(5 z*FHnXnoq4rqyk5H9p!=y1Uu4sC19^KPdBDHp6*T8aIlf&S;1)xi{V|XScW%U?|NEM zr0r$Sa6sJi`}uX!fzhboKnafIvB?f>lITep)9oJrkKIaj)YVN&aD@Fjm3Fv*{JiqL znEXV#H(f(}Al-)tBzL7U)hwUZ}jZLBhoHP;E5x%va)*u$aj0Ev&-s)VNC8x2ZGMoq-N>sPoy zdPR3}(UFS_^J?p z8p1y$^kxrM$V_6GIgi&4jIGLu1J$u#@#7b8%DBYFQTftOX5UsRvR zQ88!O|FFLysF3%c5@62~kd(eiz3CXr)2hGy`K}v{uNenN#bx4m${f5abG(-^6 z`dC(GsR&LP)_1MHDhQsDR{FCZn=2BjDd-b*gx)E>fk{06liT>rlhM*nton0%&I0LlxmdG73wqZ^FKnTjMBc3?u<^{AN|G-enRgsZA>#wUS| zESTNpx5WNOJg|c3GnFo)+l{yw6h70?FBWK%$z{>wB+wioN}%6c0_f9DZz+x0mS># z2hro#qo|k~ET0mLDCb*B8{y}sXP_f{`4?4((CAl>i7AIWsI)w zCmg(YOW0=%(cN6x@ObGeUV!1enrS2?f)I4|V^it`5ocSSI=NO!9 z-4CKYPCdbD1vgyVgMUtNTeB$&@mB?d?EVXGx=A7blJpGt|Var{!@7wU>* z>1JwV^2F6#w`I>t-mQ)W;nPn5ZveBDUUeH`6K+chs4l5{$@=b``UV01~;g$eBY_6SR* zt}epE>pJ@-r3JxtKbJ7Dm$-&j;PoDv+#V~WIAxDAimU+a!!c$4#`)k+3l+TIK^#h%*p z(n{DcRQsg|950nFB7VQu^XxUSzdJTg&|rGH1?=Yo%LYc8A2sz7#v3M9Mir|7IfwgW zobN=Dmk$@--8W!_SWAT0Xd!~g4<9YB-1HwhB@YNImX z9`oxS7N3Dg2661(vRVmT=_x(VA}sgc2gl!aW8FC|R2&_n=>|v0AV`Bu0Ss)~p8Z`v znqfEAQgY5A5zQEe-PoFYp)2naw@NVT#?}YF;nc7Vq1%lmXTGe!ka^LW!R>(zyRn$G zqM8qxeOU5^7z}_QMhhHub2;vOwp@zJ{3yYZJjTZZJ}!FQ&~Hus1Pq*DgV( zr6MENBysLe!ZxAMn2eWCvF8cj!`~M@B$Ta|a8!As1dbhk%YHjU0+DdcNgv8KM{2ct z?=iJ*7#jVzlI6$$!l%UJ#4=tS2QHLA^++3%FUFDwD<%MCHc8!AS{5cR*w1e7 znR+A^Qn|5Eo|gUs;=^^St}_`1lhQFajo`o3QNs|>-k=*xR{w0`+hpEd7~eX}300n! z{_uXVzNGx$U`C(3Jn9o8Xka+qjU~9I5Wf@kM@@N(weZiem6vy%-SuLO;D36&KY2Dc zIPxk@qvDJRlD??TVOuCWn6c|eR0^*Evbjug?j=4EaIy5(O^<8|#6

^sBON!hu(} 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 literal 0 HcmV?d00001 diff --git a/app/clients/service/logic.py b/app/clients/service/logic.py index 267b7666..59bdf16b 100644 --- a/app/clients/service/logic.py +++ b/app/clients/service/logic.py @@ -3,7 +3,7 @@ from itertools import product from app.clients.schema import PredictionInput from app.clients.util import util_get_cols - +import os column_intervention = [ 'Life Stabilization', @@ -15,9 +15,6 @@ 'Enhanced Referrals for Skills Development' ] -# loads the model into logic - -import os current_dir = os.path.dirname(os.path.abspath(__file__)) filename = os.path.join(current_dir, 'model.pkl') @@ -74,7 +71,6 @@ def intervention_row_to_names(row): def process_results(baseline, results): - ##Example: """ { baseline_probability: 80 #baseline percentage point with no interventions @@ -107,7 +103,7 @@ def interpret_and_calculate(data): baseline_prediction = model.predict(baseline_row) intervention_predictions = model.predict(intervention_rows) intervention_predictions = intervention_predictions.reshape(-1, 1) # want shape to be a vertical column, not a row - result_matrix = np.concatenate((intervention_rows, intervention_predictions), axis=1) ##CHANGED AXIS + result_matrix = np.concatenate((intervention_rows, intervention_predictions), axis=1) # CHANGED AXIS # sort this matrix based on prediction # print("RESULT SAMPLE::", result_matrix[:5]) @@ -123,8 +119,6 @@ def interpret_and_calculate(data): return results -#################### Test Data and Methods #################### - # raw data from front end test_model = { "age": "18", @@ -222,4 +216,3 @@ def test_prediction(): print("PASS\n") else: print("FAIL\n") - diff --git a/app/clients/service/model.py b/app/clients/service/model.py index 2cc79632..cf158bb0 100644 --- a/app/clients/service/model.py +++ b/app/clients/service/model.py @@ -1,17 +1,29 @@ +import os import pandas as pd import numpy as np import pickle from sklearn.model_selection import train_test_split -from sklearn.ensemble import RandomForestRegressor -from app.clients.util import util_get_cols +from app.clients.util import util_get_cols, get_model +from dotenv import load_dotenv +# Load environment variables +load_dotenv() + +# Get configuration from .env +MODEL_TYPE = os.getenv("MODEL_TYPE", "RandomForestRegressor") # Default: RandomForestRegressor +MODEL_OUTPUT_NAME = os.getenv("MODEL_OUTPUT_NAME", "different.pkl") # Default: different.pkl def prepare_models(): + """ + Prepare and train a machine learning model based on the configuration. + """ # Load dataset and define the features and labels backendCode = pd.read_csv('data_commontool.csv') - # Define categorical columns and interventions - # the order of features MUST be the same as the features when predicting the result in logic.py + + # Load categorical columns dynamically categorical_cols = util_get_cols() + + # Define interventions interventions = [ 'employment_assistance', 'life_stabilization', @@ -22,51 +34,65 @@ def prepare_models(): 'enhanced_referrals' ] categorical_cols.extend(interventions) + # Prepare training data X_categorical_baseline = backendCode[categorical_cols] - y_baseline = backendCode['success_rate'] + y_baseline = backendCode['success_rate'] # Assuming 'success_rate' is the target variable X_categorical_baseline = np.array(X_categorical_baseline) y_baseline = np.array(y_baseline) - X_train_baseline, X_test_baseline, y_train_baseline, y_test_baseline = train_test_split( - X_categorical_baseline, y_baseline, test_size=0.2, random_state=42) - - rf_model_baseline = RandomForestRegressor(n_estimators=100, random_state=42) - rf_model_baseline.fit(X_train_baseline, y_train_baseline) - # Example: Predicting on the test set - baseline_predictions = rf_model_baseline.predict(X_test_baseline) + # Split data into training and testing sets + X_train_baseline, X_test_baseline, y_train_baseline, y_test_baseline = train_test_split( + X_categorical_baseline, y_baseline, test_size=0.2, random_state=42 + ) - - return rf_model_baseline + # Dynamically load the model based on configuration + model = get_model(MODEL_TYPE) + # Train the model + print(f"Training {MODEL_TYPE} model...") + model.fit(X_train_baseline, y_train_baseline) -#################### Test Data and Methods #################### + # Example: Predicting on the test set (optional, for evaluation) + baseline_predictions = model.predict(X_test_baseline) + print(f"Sample predictions: {baseline_predictions[:5]}") -# original order of columns: -test_original_cols = ['age', 'gender', 'work_experience', 'canada_workex', 'dep_num', 'canada_born', 'citizen_status', - 'level_of_schooling', 'fluent_english', 'reading_english_scale', 'speaking_english_scale', - 'writing_english_scale', 'numeracy_scale', 'computer_scale', 'transportation_bool', - 'caregiver_bool', 'housing', 'income_source', 'felony_bool', 'attending_school', - 'currently_employed', 'substance_use', 'time_unemployed', 'need_mental_health_support_bool'] + return model -def test_column_order(): - print("\n#################### test_data_type_conversion() ####################") - cols = util_get_cols() - # print(cols) - if cols == test_original_cols: - print("PASS") - else: - print("FAIL") +# def test_column_order(): +# """ +# Test if the column order matches the expected original order. +# """ +# print("\n#################### test_column_order() ####################") +# test_original_cols = [ +# 'age', 'gender', 'work_experience', 'canada_workex', 'dep_num', 'canada_born', 'citizen_status', +# 'level_of_schooling', 'fluent_english', 'reading_english_scale', 'speaking_english_scale', +# 'writing_english_scale', 'numeracy_scale', 'computer_scale', 'transportation_bool', +# 'caregiver_bool', 'housing', 'income_source', 'felony_bool', 'attending_school', +# 'currently_employed', 'substance_use', 'time_unemployed', 'need_mental_health_support_bool' +# ] +# cols = util_get_cols() +# if cols == test_original_cols: +# print("PASS") +# else: +# print("FAIL") def main(): - print("Start model.") + """ + Main function to prepare and save the trained model. + """ + print("Starting model") model = prepare_models() - pickle.dump(model, open("model.pkl", "wb")) #saves model to the file name input, write binary - model = pickle.load(open("model.pkl", "rb")) #read binary + # Save the model to a file (configurable via .env) + pickle.dump(model, open(MODEL_OUTPUT_NAME, "wb")) + print(f"Model saved as {MODEL_OUTPUT_NAME}") + # Optional: Reload the model to verify save/load functionality + model = pickle.load(open(MODEL_OUTPUT_NAME, "rb")) + print(f"Model reloaded successfully from {MODEL_OUTPUT_NAME}") if __name__ == "__main__": main() diff --git a/app/clients/service/random_forest_model.pkl b/app/clients/service/random_forest_model.pkl new file mode 100644 index 0000000000000000000000000000000000000000..813e725d35c78b94005faa680d2983535a99fd78 GIT binary patch literal 752767 zcmdpf34E4Ewf9qulqIDxr75M9W&^@f3N%1iN)FjWLP$aq5|$=Ffl$g)2rb?8EmYeo z)>fnT_NpK5y;`;Px?QhVqgJi;eztXOugi@~d)>vIx_#fg&;0+-PUZ{X4GPwXk#d!Na?b z^z@#*uzCA|YYy(O3WLqN_L$fs2M_nYu6OS3y|?uiot$V=?cKk<$HbkyklFMc-et1b zdENFSM|K@C@fEvv?me>i;DHtsKU5w&5AW^Sb=V~6J$c@d>yK_fyz83IU55`R^PF(x z&~(hkCku8&1At|K0{rHlSdGFmdP3L!H~N zJJh{>K%(>ZA3Sid=iq_8J3Dt8t~Z>_>I5%4Z`gG>$-3T?FJ8Q`c;S-XqdQJ!9_Wm? zex$eVnv+>ku=CLN!`t^C=`HG>+s?u$)>PTXjpgo#RAr_r#Nv zqoBdtX1FrJifu^pdEHZDk$vI14{rF?l>@22sG(a`pnF!`W!-ZOUFQvypRgV;PWFY) z-jmt7ZzN-lL?=6h=}V@*7alme|IkeflTER3|IzDu_HI9Xc>7JgCo?+_@7j6rfN8L! zJ9|vhlP?Yv_MSZVz%@3BK@VQuTYk=t-aC7ndyDGMsXOQ8z1_=BzWAD+n+_#&KRIr1 zN$=fv*|#q`dCuzIhK7c9|Ia+(zq+8OcgNl36Ra)>f?gA>J13di^zZKT>n0iI8{zNV zdGP3gp5D46hJvs!bT92LNtWEblI0#Tfzp#NYFk!3u((@$8;VX&x^CC*p3a@!d#}5u z_vGZmVJAfBT=X|1nmyg7+jSpIrkTJ#)ti)#kN^tY$%||+HcG;Olf8fMkt2H#?CIQd zu(Ri&>AAamOm&j=Xfc#2K6IB4=0aWYir((l?ykBC2DTZPW#FbH=I#L;91?SyN!i}L zr!LpP4ue@_;ARtEWZ;%$4o4R|rgU!{qU@4a^d7Af(|lRU_9*L{5d>@!^K*ztCS>Elw|(1$!EyL88So{15yBifeQ4IUt8czlE>!VX34<@fj|qU2_#%Wk()G~! zum0U5J)+|m2$N;t$GLzyT{hC~l@}8sgwureX8d@(pQ6(Bm)c;7upAqnDomD?@qy1@ z5y1OCrX!zhc!Dr~Aa3$^Jp5qT_^huj_cZDi1QS6B`8JJ&g%I`cpXKo{H{xGh`ZfP% z2#bk}pNjrWWONZ=4l@p6hJ+w-qfkEW>xB{h=h=uL3s9GHru5WhIdfmMVXsg=ZL)kp z@__PkJ|hOgM2St;w?ruC_H~wxH-U8P9~VEB{IS1gTf&0rfEG~xH+$_reEHXWb@F!s z%G2$J$izyqziPeymld_&R3z2

{RKPb892PMlq{!fVTN5;R=>wj^}PsKm>*Go`k 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�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

-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 literal 0 HcmV?d00001 diff --git a/app/clients/service/svr_model.pkl b/app/clients/service/svr_model.pkl new file mode 100644 index 0000000000000000000000000000000000000000..4010fd32538283de199808d33f8c5c09374b6847 GIT binary patch literal 29854 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 Date: Mon, 18 Nov 2024 20:16:53 -0800 Subject: [PATCH 13/29] update sprint3 --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 0b5ee855..2cd448c8 100644 --- a/README.md +++ b/README.md @@ -91,3 +91,14 @@ fastapi dev main.py - `field_serializer` from Pydantic package was used to convert string type into numerical types - We are investigating FastAPI docs and finding that we can use environment variables to configure some parameters in code - Primary study showed that we need to retrieve some intermediate variables to suit our code with test + + + +## Sprint 3 + +- Different machine learning models, including LinearRegression, GradientBoostingRegressor and SVR were trained and tested to expand the choice in prediction. +- The task of data type convertion was refactored to be conducted by the `PredictionInput` class. +- Order of features (columns from the frontend form) was configured in `.env` file. +- Unit tests were added to make sure the code works during the refactoring work. +- Intergrated test was perfromed on the `clients/predictions` API to make sure the API is working. + From e6ea6019907e7af2d729b08b317264befbf39e44 Mon Sep 17 00:00:00 2001 From: JiayangLJY <121959306+JiayangLJY@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:23:10 -0800 Subject: [PATCH 14/29] create pylint-action --- .github/workflows/pylint-action.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/pylint-action.yml diff --git a/.github/workflows/pylint-action.yml b/.github/workflows/pylint-action.yml new file mode 100644 index 00000000..c15e6b55 --- /dev/null +++ b/.github/workflows/pylint-action.yml @@ -0,0 +1,24 @@ +name: Pylint-Action + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.10"] + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pylint + - name: Analysing the code with pylint + run: | + echo "::log::Pylint processing" + pylint --disable=C,R,W $(git ls-files '*.py') From ecb532c96af1df768710105e49ce93cced30f971 Mon Sep 17 00:00:00 2001 From: JiayangLiu Date: Wed, 20 Nov 2024 16:26:07 -0800 Subject: [PATCH 15/29] update pylint-action --- .github/workflows/pylint-action.yml | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/.github/workflows/pylint-action.yml b/.github/workflows/pylint-action.yml index c15e6b55..cd2b0cd6 100644 --- a/.github/workflows/pylint-action.yml +++ b/.github/workflows/pylint-action.yml @@ -9,16 +9,17 @@ jobs: matrix: python-version: ["3.10"] steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install pylint - - name: Analysing the code with pylint - run: | - echo "::log::Pylint processing" - pylint --disable=C,R,W $(git ls-files '*.py') + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pylint + pip install -r requirements.txt + - name: Analysing the code with pylint + run: | + echo "::log::Pylint processing" + pylint --disable=C,R,W $(git ls-files '*.py') From 731ffb0e469529f58ec6ab5bc39e2a13ff4dff72 Mon Sep 17 00:00:00 2001 From: JiayangLiu Date: Wed, 20 Nov 2024 16:39:02 -0800 Subject: [PATCH 16/29] exclude test files --- .github/workflows/pylint-action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pylint-action.yml b/.github/workflows/pylint-action.yml index cd2b0cd6..d9640925 100644 --- a/.github/workflows/pylint-action.yml +++ b/.github/workflows/pylint-action.yml @@ -22,4 +22,4 @@ jobs: - name: Analysing the code with pylint run: | echo "::log::Pylint processing" - pylint --disable=C,R,W $(git ls-files '*.py') + pylint --disable=C,R,W app/*.py From 1f1f40e3aac2d98365bceee679209146f09b2fa1 Mon Sep 17 00:00:00 2001 From: JiayangLJY <121959306+JiayangLJY@users.noreply.github.com> Date: Tue, 26 Nov 2024 18:13:26 -0800 Subject: [PATCH 17/29] Create docker-action.yml --- .github/workflows/docker-action.yml | 50 +++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/docker-action.yml diff --git a/.github/workflows/docker-action.yml b/.github/workflows/docker-action.yml new file mode 100644 index 00000000..6f0e0ac7 --- /dev/null +++ b/.github/workflows/docker-action.yml @@ -0,0 +1,50 @@ +name: Docker-Action + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build-test: + runs-on: ubuntu-latest + + steps: + # Step 1: Checkout the code + - name: Checkout code + uses: actions/checkout@v4 + + # Step 2: Log in to Docker Hub (optional, if pushing images) + # - name: Log in to Docker Hub + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKER_PASSWORD }} + + # Step 3: Build the Docker image + - name: Build Docker image + run: | + docker build -t thoughtful-app . + + # Step 4: Run the Docker container + - name: Run Docker container + run: | + docker run -d --name thoughtful-app-container thoughtful-app + + # Step 5: Run tests inside the container + - name: Run tests + run: | + docker exec thoughtful-app-container python /tests/test.py + + # Step 6: Clean up + - name: Stop and remove container + run: | + docker stop thoughtful-app-container + docker rm thoughtful-app-container + + - name: Remove Docker image + run: | + docker rmi thoughtful-app From b96d340d418f26973206ce9c3650423ea4f47ffc Mon Sep 17 00:00:00 2001 From: JiayangLiu Date: Tue, 26 Nov 2024 18:24:28 -0800 Subject: [PATCH 18/29] add dockerfile --- .github/workflows/docker-action.yml | 2 +- Dockerfile | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/.github/workflows/docker-action.yml b/.github/workflows/docker-action.yml index 6f0e0ac7..53a0b950 100644 --- a/.github/workflows/docker-action.yml +++ b/.github/workflows/docker-action.yml @@ -37,7 +37,7 @@ jobs: # Step 5: Run tests inside the container - name: Run tests run: | - docker exec thoughtful-app-container python /tests/test.py + docker exec thoughtful-app-container python /app/clients/service/model.py # Step 6: Clean up - name: Stop and remove container diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..be077fa7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +# Use an official Python runtime as a parent image +FROM python:3.10-slim + +# Set the working directory in the container +WORKDIR /app + +# Copy the current directory contents into the container +COPY . /app + +# Install any needed packages specified in requirements.txt +RUN pip install --no-cache-dir -r requirements.txt + +# Run tests by default +CMD ["python", "/app/clients/service/model.py"] From d8c67be467fb5ea8d59b1b75d00845ea107dce7b Mon Sep 17 00:00:00 2001 From: JiayangLiu Date: Tue, 26 Nov 2024 18:32:37 -0800 Subject: [PATCH 19/29] refine docker-action --- .github/workflows/docker-action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-action.yml b/.github/workflows/docker-action.yml index 53a0b950..d8a96667 100644 --- a/.github/workflows/docker-action.yml +++ b/.github/workflows/docker-action.yml @@ -35,9 +35,9 @@ jobs: docker run -d --name thoughtful-app-container thoughtful-app # Step 5: Run tests inside the container - - name: Run tests - run: | - docker exec thoughtful-app-container python /app/clients/service/model.py + # - name: Run tests + # run: | + # docker exec thoughtful-app-container python /app/clients/service/model.py # Step 6: Clean up - name: Stop and remove container From 130d3192753c1254086fe058176eb98f64e84ef2 Mon Sep 17 00:00:00 2001 From: ShqiW Date: Tue, 26 Nov 2024 22:01:10 -0500 Subject: [PATCH 20/29] run test --- .github/workflows/docker-action.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-action.yml b/.github/workflows/docker-action.yml index d8a96667..fd0612ee 100644 --- a/.github/workflows/docker-action.yml +++ b/.github/workflows/docker-action.yml @@ -38,7 +38,10 @@ jobs: # - name: Run tests # run: | # docker exec thoughtful-app-container python /app/clients/service/model.py - + Step 5: Run tests inside the container + - name: Run tests + run: | + docker exec thoughtful-app-container python /test/test.py # Step 6: Clean up - name: Stop and remove container run: | From b5c0df035939c7a22d13111d41832b7370275a59 Mon Sep 17 00:00:00 2001 From: ShqiW Date: Tue, 26 Nov 2024 22:04:02 -0500 Subject: [PATCH 21/29] run test code again --- .github/workflows/docker-action.yml | 76 ++++++++++++++--------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/.github/workflows/docker-action.yml b/.github/workflows/docker-action.yml index fd0612ee..782627c6 100644 --- a/.github/workflows/docker-action.yml +++ b/.github/workflows/docker-action.yml @@ -13,41 +13,41 @@ jobs: runs-on: ubuntu-latest steps: - # Step 1: Checkout the code - - name: Checkout code - uses: actions/checkout@v4 - - # Step 2: Log in to Docker Hub (optional, if pushing images) - # - name: Log in to Docker Hub - # uses: docker/login-action@v2 - # with: - # username: ${{ secrets.DOCKER_USERNAME }} - # password: ${{ secrets.DOCKER_PASSWORD }} - - # Step 3: Build the Docker image - - name: Build Docker image - run: | - docker build -t thoughtful-app . - - # Step 4: Run the Docker container - - name: Run Docker container - run: | - docker run -d --name thoughtful-app-container thoughtful-app - - # Step 5: Run tests inside the container - # - name: Run tests - # run: | - # docker exec thoughtful-app-container python /app/clients/service/model.py - Step 5: Run tests inside the container - - name: Run tests - run: | - docker exec thoughtful-app-container python /test/test.py - # Step 6: Clean up - - name: Stop and remove container - run: | - docker stop thoughtful-app-container - docker rm thoughtful-app-container - - - name: Remove Docker image - run: | - docker rmi thoughtful-app + # Step 1: Checkout the code + - name: Checkout code + uses: actions/checkout@v4 + + # Step 2: Log in to Docker Hub (optional, if pushing images) + # - name: Log in to Docker Hub + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKER_PASSWORD }} + + # Step 3: Build the Docker image + - name: Build Docker image + run: | + docker build -t thoughtful-app . + + # Step 4: Run the Docker container + - name: Run Docker container + run: | + docker run -d --name thoughtful-app-container thoughtful-app + + # Step 5: Run tests inside the container + # - name: Run tests + # run: | + # docker exec thoughtful-app-container python /app/clients/service/model.py + # Step 5: Run tests inside the container + - name: Run tests + run: | + docker exec thoughtful-app-container python /test/test.py + # Step 6: Clean up + - name: Stop and remove container + run: | + docker stop thoughtful-app-container + docker rm thoughtful-app-container + + - name: Remove Docker image + run: | + docker rmi thoughtful-app From a2d653d22b84d31d041f58cbacde3b7c9b46667f Mon Sep 17 00:00:00 2001 From: ShqiW Date: Tue, 26 Nov 2024 22:16:30 -0500 Subject: [PATCH 22/29] sleep + app/tests/test --- .github/workflows/docker-action.yml | 3 ++- Dockerfile | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-action.yml b/.github/workflows/docker-action.yml index 782627c6..cd69ca5d 100644 --- a/.github/workflows/docker-action.yml +++ b/.github/workflows/docker-action.yml @@ -41,7 +41,8 @@ jobs: # Step 5: Run tests inside the container - name: Run tests run: | - docker exec thoughtful-app-container python /test/test.py + docker exec thoughtful-app-container python /app/tests/test.py + # Step 6: Clean up - name: Stop and remove container run: | diff --git a/Dockerfile b/Dockerfile index be077fa7..eea94456 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,4 +11,5 @@ COPY . /app RUN pip install --no-cache-dir -r requirements.txt # Run tests by default -CMD ["python", "/app/clients/service/model.py"] +# CMD ["python", "/app/clients/service/model.py"] +CMD ["sleep","1h"] From 26bacb30fd3fe9b6be91b7ffb4e4ca9bff6aea23 Mon Sep 17 00:00:00 2001 From: ShqiW Date: Tue, 26 Nov 2024 22:30:03 -0500 Subject: [PATCH 23/29] update requirements --- requirements.txt | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6350bd11..857fc67a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -32,8 +32,11 @@ fastapi==0.103.2 fastjsonschema==2.16.3 folium==0.14.0 fqdn==1.5.1 +greenlet==3.1.1 h11==0.14.0 +httpcore==1.0.6 httptools==0.6.0 +httpx==0.27.2 idna==3.4 iniconfig==1.1.1 ipykernel==6.22.0 @@ -71,6 +74,7 @@ nest-asyncio==1.5.6 notebook==6.5.4 notebook_shim==0.2.2 numpy==1.24.2 +outcome==1.3.0.post0 packaging==23.2 pandas==2.0.0 pandocfilters==1.5.0 @@ -96,7 +100,14 @@ pydantic_core==2.10.1 Pygments==2.16.1 pylint==3.0.1 pyrsistent==0.19.3 +PySocks==1.7.1 pytest==7.2.0 +pytest-base-url==2.1.0 +pytest-html==4.1.1 +pytest-metadata==3.1.1 +pytest-mock==3.14.0 +pytest-selenium==4.1.0 +pytest-variables==3.1.0 python-dateutil==2.8.2 python-dotenv==1.0.0 python-jose==3.3.0 @@ -113,13 +124,16 @@ rfc3986-validator==0.1.1 rsa==4.9 scikit-learn==1.4.2 scipy==1.13.0 +selenium==4.26.1 Send2Trash==1.8.0 six==1.16.0 sniffio==1.3.0 +sortedcontainers==2.4.0 soupsieve==2.4.1 SQLAlchemy==2.0.21 stack-data==0.6.3 starlette==0.27.0 +tenacity==9.0.0 terminado==0.17.1 threadpoolctl==3.4.0 tinycss2==1.2.1 @@ -127,6 +141,9 @@ tomli==2.0.1 tomlkit==0.12.1 tornado==6.3.1 traitlets==5.11.2 +trio==0.27.0 +trio-websocket==0.11.1 +typing_extensions==4.12.2 typing_extensions==4.8.0 tzdata==2023.3 uri-template==1.2.0 @@ -136,7 +153,9 @@ uvloop==0.17.0 watchfiles==0.20.0 wcwidth==0.2.8 webcolors==1.13 +webdriver-manager==4.0.2 webencodings==0.5.1 -websocket-client==1.5.1 +websocket-client==1.8.0 websockets==11.0.3 -widgetsnbextension==4.0.7 \ No newline at end of file +widgetsnbextension==4.0.7 +wsproto==1.2.0 \ No newline at end of file From b7c78398837165a9ec9ab875fd9f146b8af1300f Mon Sep 17 00:00:00 2001 From: ShqiW Date: Tue, 26 Nov 2024 22:32:14 -0500 Subject: [PATCH 24/29] re-update req --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 857fc67a..19d4c359 100644 --- a/requirements.txt +++ b/requirements.txt @@ -144,7 +144,6 @@ traitlets==5.11.2 trio==0.27.0 trio-websocket==0.11.1 typing_extensions==4.12.2 -typing_extensions==4.8.0 tzdata==2023.3 uri-template==1.2.0 urllib3==2.0.7 From 6c5765ca3142eb8da67c4a69e48cd628fc4d2799 Mon Sep 17 00:00:00 2001 From: ShqiW Date: Tue, 26 Nov 2024 22:35:00 -0500 Subject: [PATCH 25/29] update reqs --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 19d4c359..4c2efce3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,7 @@ argon2-cffi-bindings==21.2.0 arrow==1.2.3 astroid==3.0.1 asttokens==2.4.0 -attrs==22.1.0 +attrs==24.2.0 backcall==0.2.0 bcrypt==4.0.1 beautifulsoup4==4.12.2 @@ -157,4 +157,4 @@ webencodings==0.5.1 websocket-client==1.8.0 websockets==11.0.3 widgetsnbextension==4.0.7 -wsproto==1.2.0 \ No newline at end of file +wsproto==1.2.0 From d11f2ac614b9eec0b10185493190fc2abba8ea6d Mon Sep 17 00:00:00 2001 From: DJ Date: Thu, 28 Nov 2024 00:35:49 -0800 Subject: [PATCH 26/29] modified --- app/clients/service/logic.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/app/clients/service/logic.py b/app/clients/service/logic.py index 59bdf16b..e27eccc6 100644 --- a/app/clients/service/logic.py +++ b/app/clients/service/logic.py @@ -4,6 +4,10 @@ from app.clients.schema import PredictionInput from app.clients.util import util_get_cols import os +from dotenv import load_dotenv + +# Load environment variables +load_dotenv() column_intervention = [ 'Life Stabilization', @@ -16,9 +20,17 @@ ] -current_dir = os.path.dirname(os.path.abspath(__file__)) -filename = os.path.join(current_dir, 'model.pkl') -model = pickle.load(open(filename, "rb")) +# Dynamically load the model +try: + current_dir = os.path.dirname(os.path.abspath(__file__)) + model_path = os.path.join(current_dir, MODEL_OUTPUT_NAME) + with open(model_path, "rb") as model_file: + model = pickle.load(model_file) + print(f"Model of type {MODEL_TYPE} loaded successfully from {model_path}") +except FileNotFoundError: + print(f"Error: Model file not found at {model_path}. Please check the MODEL_OUTPUT_NAME in .env.") +except Exception as e: + print(f"An error occurred while loading the model: {e}") def convert_none_bool(value): From 3ba97369f9fafde1a60fed85ed323a09d92d03d9 Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Mon, 2 Dec 2024 13:43:26 -0800 Subject: [PATCH 27/29] fix: read configs in logic.py, fix model training in model.py --- app/clients/.env | 8 +++--- app/clients/service/logic.py | 28 +++++++++++--------- app/clients/service/model.py | 9 ++++--- app/clients/service/random_forest_model.pkl | Bin 752767 -> 747007 bytes 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/app/clients/.env b/app/clients/.env index a6936ec6..d1fd3173 100644 --- a/app/clients/.env +++ b/app/clients/.env @@ -24,12 +24,10 @@ FEATURE_COLS_IN_SEQ=["age", "gender", "work_experience", "canada_workex", "dep_n # 'time_unemployed', #number of years unemployed # 'need_mental_health_support_bool'] #need support -# MODEL_TYPE=GradientBoostingRegressor # Options: RandomForestRegressor, LinearRegression, GradientBoostingRegressor, SVR -# MODEL_OUTPUT_NAME=gradient_boosting_model.pkl - -# MODEL_TYPE=RandomForestRegressor -# MODEL_OUTPUT_NAME=random_forest_model.pkl +# Options: RandomForestRegressor, LinearRegression, GradientBoostingRegressor, SVR MODEL_TYPE=SVR MODEL_OUTPUT_NAME=svr_model.pkl +#MODEL_TYPE=RandomForestRegressor +#MODEL_OUTPUT_NAME=random_forest_model.pkl diff --git a/app/clients/service/logic.py b/app/clients/service/logic.py index 878e19fb..31ad1180 100644 --- a/app/clients/service/logic.py +++ b/app/clients/service/logic.py @@ -9,16 +9,9 @@ # Load environment variables load_dotenv() -column_intervention = [ - 'Life Stabilization', - 'General Employment Assistance Services', - 'Retention Services', - 'Specialized Services', - 'Employment-Related Financial Supports for Job Seekers and Employers', - 'Employer Financial Supports', - 'Enhanced Referrals for Skills Development' -] - +# Get configuration from .env +MODEL_TYPE = os.getenv("MODEL_TYPE", "RandomForestRegressor") # Default: RandomForestRegressor +MODEL_OUTPUT_NAME = os.getenv("MODEL_OUTPUT_NAME", "random_forest_model.pkl") # Default: different.pkl # Dynamically load the model try: @@ -33,6 +26,17 @@ print(f"An error occurred while loading the model: {e}") +column_intervention = [ + 'Life Stabilization', + 'General Employment Assistance Services', + 'Retention Services', + 'Specialized Services', + 'Employment-Related Financial Supports for Job Seekers and Employers', + 'Employer Financial Supports', + 'Enhanced Referrals for Skills Development' +] + + def convert_none_bool(value): """convert None to 0, True to 1, False to 0""" if value is None: @@ -112,6 +116,7 @@ def interpret_and_calculate(data): baseline_row = baseline_row.reshape(1, -1) print("BASELINE ROW IS", baseline_row) intervention_rows = create_matrix(raw_data) + print("ML MODEL IS", MODEL_TYPE) baseline_prediction = model.predict(baseline_row) intervention_predictions = model.predict(intervention_rows) intervention_predictions = intervention_predictions.reshape(-1, 1) # want shape to be a vertical column, not a row @@ -129,6 +134,3 @@ def interpret_and_calculate(data): # build output dict print(f"RESULTS: {results}") return results - - -#################### Test Data and Methods #################### diff --git a/app/clients/service/model.py b/app/clients/service/model.py index 7f87c669..a7c196b7 100644 --- a/app/clients/service/model.py +++ b/app/clients/service/model.py @@ -11,7 +11,8 @@ # Get configuration from .env MODEL_TYPE = os.getenv("MODEL_TYPE", "RandomForestRegressor") # Default: RandomForestRegressor -MODEL_OUTPUT_NAME = os.getenv("MODEL_OUTPUT_NAME", "different.pkl") # Default: different.pkl +MODEL_OUTPUT_NAME = os.getenv("MODEL_OUTPUT_NAME", "random_forest_model.pkl") # Default: different.pkl + def prepare_models(): """ @@ -54,10 +55,9 @@ def prepare_models(): model.fit(X_train_baseline, y_train_baseline) # Example: Predicting on the test set - baseline_predictions = rf_model_baseline.predict(X_test_baseline) + # baseline_predictions = model.predict(X_test_baseline) - - return rf_model_baseline + return model def main(): @@ -75,5 +75,6 @@ def main(): model = pickle.load(open(MODEL_OUTPUT_NAME, "rb")) print(f"Model reloaded successfully from {MODEL_OUTPUT_NAME}") + if __name__ == "__main__": main() diff --git a/app/clients/service/random_forest_model.pkl b/app/clients/service/random_forest_model.pkl index 813e725d35c78b94005faa680d2983535a99fd78..61264e054c8d35445542920402750881a05b5ffa 100644 GIT binary patch literal 747007 zcmdpf3w&M0areOp$JoLMA%qc*(aW~{z?N;{H_}*=A9`4lCE1n?wk6xLW$^m}1`N3l zB!uD+l22*#r6h3z2`Oz_LPJ7n(kcxN2}xU00--z3db*DsnAdaQXwUu~`+DYW z-+k~%&(ULjr!Q;mKCtWH{xxB+wP%lsJ$mp+-~Z{Gb*k_7zOvI7npAuDcONrxr!QkR z$By)vEOzeeK6^!pfSkDoYpzriWM-LzGKGL&md(V+0 z$vh_fLq6_zTpV+>u=g_guJ8+aA7L8*(AZi0owEyL-Bi9XItf*-uV} zlWDdeIJhf}$vzVDWBbu#-N$-Nip!F@?%jXrxT(S|hOC`Odb*GH^bN`~WCIE|2p8_$ zd1!n0zC*p;gA!e||KNdx#||FYyL0;u~)t{?4d*mXK53T{8teWZK;(Y~_YNxc{M=Ja0Do7;P7Z(eVH?`6GHdap1Idf|?P z2ag>+cBK1I-#boUc<|tk?MHW-#_hZ3^!NkYZ#cNaRJ-@GrqgdSB>AG=$+5`3to~0|zt}#Q`pcVoRRwydH(b>_)6jL%VEGB_ zaY3>#Z0|drtNTVW)<|@+Lzuo~>U-INkt5x=^qtP$exzsT z!2_njj_*8XlAgXGOxSn&O$T<_BnCZrTVKt2JNoYKYwas*IIrQnxApZdK7GNiW49bi z=6-tI-lcu_yu-dd|MYn)`i@?);lGC9Sl^C&Y9?4+5CnZD*l=Dlwdvoz7dKpJ zm~VuC`_6;M4;<@j=r$CDeWCZ7-lfTsdzZ7^ZWE|Feg3A!6@!aA+1FHddg8vG-N&}? z?A^O>SKsMLN5W2s(3{ZTjA$O~HQlcFU^2}F_Nl(4bc6&@;7(s|d$Cax{+rzWdygL7 zdtlG@JqNcRJ7{|D?qjAp$$GRK$`l`ZYld>6A$WUV@5bJ)h6x64GBC%$%}LDNgE%-W z<`k2%qjyh3p@E$Sv&_IPCR}ddb;%r#FK|rhZ5yWSrEl*$-XNy=a+2*)EmMMkO|ldU z>LMzt5KfaHuip6J^vbtM)8P32twOwUh@TIbJ2+i1Q1$FH@44r`p0~os=f4ra z`+lZleQo%)D#nk;k2e8MTW1m%Z??`?FUjW>b8WhZ}+w0zcUlFc}{7|?=&s{T(_ zR=jX`y^u~DKUJ8F{36{9+xIz=_`%Zqez0`0u$^uEga|)9`hyJd9slE&PdQ<|EDQq5 zdmbXl2OG?m`#)JmqzLx(S0l5MD`=y9rKeWMts{2Fvxyhq{ zN`~~i^3$W=$=_w5yBJXSlYy%8C(8ezsNg2K0`DzY715uM_{#xx`%RF-*6|-a@PQ*j zIkU+Y3X;d}|Ko@dLf8L{3J;$*18Vs#kY|nhJUn&3P(RpY^90EQ)@v#v$PXJFfSy|> zx?KyS`WFE2N@h41_E(DymV51=hxp9(U)=WB@}H^vIQ~zw6%4Kd)a_ItQt;0;J8$nu zsejX>-<4m8a;cvvkBF8K_P2^(fA;6NTROO z<=GK_dgZ(N&qBF#0kxjUx8=wd&weS5%AXCqIe@yI&sGJY0XN6v|C9(nF8w-RCqHrV zHUFLdxf*oO1Jrg}uBFrTAKfmQ>W`7ruluiSzjDyM08rP{@ZUWB7u@X0kLy2i`In0S z3sLSOz=?nsWJ$}$c6+blmATZFQ-4^(y!@q^e+S5wScsPZE&FKQ~4|Z;<4}CCA1I1_{3^K z@?bfBtOC^h&ym-Ty?*DUOOJ|{iv;h9G%t`$@~M z34BfnIS;VW;PWBhelKKkvFX=*aqX90`@8-V z7hm(w>91wm339sgE??iN4=WStD0zVY2>#@{8m>cw(l za1DMmFhap9dGrzU{QEIa|CI@ot;LUZfLi{hNPlwrecv`ue~cdg>QHVypg;ey(dFL! z-|;U!`5C?Ovk`PR1L}4fsFI}o?b+e=UpN0;4?M1KY5TEA?CTa!e)FRKAGiKm{zk9< zam!EDe>b51+W?iGH|uwQbn!cX@!>y9c=~&8RR31sZ3WbNszjb$efid7Upwf@zgxd( z16~JUJ|KXE@XT&+{4R~kZ%4w7fLw>LLC#;74rxCmkF9?-{{kWYCj8h8sO?81KmTOc z&vg5bp8k#7{<>Wp{hgrudO)qe3&lovc>2f5{}$j~2gvnE8wCIR7kc{RH!c5fJpZ-) zxbbs4_|^re*NKXyKU_cC{EwNbe4J*DPvl}-N$N8d`kuZYq= z{;A~CCKrd#CQ0g^)t7hReW!(qO%hH@Hnt+ZDSH2oyOU3=gq`+pTfFqmHf&~tLHH1Y z-oysPw@XNF-8zI(k3<8)ED!M~+EK51ojz!if4JuZFW&R!O^65mveBl0)r&Xv3X)Gm zAIkxKkCGnb6RfrABf81&N|_!q9Pb0h*U6oKac2IHCe_Qz@Tr#hPyXm5_s((|iiqwYd?=4hUuyF)v(NA~={4@~-C^cM79Y5u3@Fn;(0 zUzi`qVca{v?Q6FH9(Mp{ITk-t1Kug%xaE`2w){M?FbFtcUxoCJES72OE*H_2U(-|;smPoEM_^uss(ol*N|Bk6QNF6i5!Y5y<2XZze+ZWk^P zT70U0=RnK>KJ&A|ED3ex$)lnjE2{*_1M-`WTgtV4Zx--EojTeEz{urC)8z~p8jQuP zkb>)_1u~c>2RFAhKOquFePgBPjP4u-pVDZvWN# zqfl7MxcK9UVBv`Ib^AN{xdQpJ-}v?K3T?YqPk+yg+OGikbYM~s*=XZH3m1?YQcmEh zuQ_ogJr>{aKg9%$_4&>4&-I`5%AX)$TjY2wLbaE@typYpx&i`T7Edrc6t*ihab28y8KM(cla|v_bfm?ew?kE@}>X2 z`?->Y-hhy(6(k?xKpe*xA>;<0(H=h>{ps<~@qaexT>_}}e1Y`;-Gd7rIdh9>y;2kD zk2%0A2h%%*}{zJLSd;9~gD)~(h zf8_0-s{BgSdljJ8ef7HLrJo_or1^i6=kHc>O-J1Zl{wR>o_P2lc!k2II99Y*x?birAIuQN( zhZ|Vmao8Jw77EaU_4v^QsP$B~1mOn2r5^t>)!&)wKi7UOpt}uFkH3cgZx$Wec}1hA zKb!+^1Mpe_wf@PKFnVCRXFrX6{Y;PFnexx+uXfPA5m14F4P$=%*$jf|K%J&5Q1y<` zwKCcp_#OW;9Y2#x;l0O)Sz>mcqc530b^1TPe(!&LeZ7RWlhyJäN7ptRi7$12E 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ë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 z%0D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

{RKPb892PMlq{!fVTN5;R=>wj^}PsKm>*Go`k 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�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

-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 From 6039465f7d71e75fa812616df11304d4079149d6 Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Mon, 2 Dec 2024 13:58:34 -0800 Subject: [PATCH 28/29] remove cols in .env --- app/clients/.env | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/app/clients/.env b/app/clients/.env index d1fd3173..2313417c 100644 --- a/app/clients/.env +++ b/app/clients/.env @@ -1,31 +1,7 @@ FEATURE_COLS_IN_SEQ=["age", "gender", "work_experience", "canada_workex", "dep_num", "canada_born", "citizen_status", "level_of_schooling", "fluent_english", "reading_english_scale", "speaking_english_scale", "writing_english_scale", "numeracy_scale", "computer_scale", "transportation_bool", "caregiver_bool", "housing", "income_source", "felony_bool", "attending_school", "currently_employed", "substance_use", "time_unemployed", "need_mental_health_support_bool"] -# categorical_cols = ['age', -# 'gender', #bool -# 'work_experience', #years of work experience -# 'canada_workex',#years of work experience in canada -# 'dep_num', #number of dependents -# 'canada_born', #born in canada -# 'citizen_status', #citizen status -# 'level_of_schooling', #highest level achieved (1-14) -# 'fluent_english', #english level fluency, scale (1-10) -# 'reading_english_scale', #reading scale (1-10) -# 'speaking_english_scale', #speaking level comfort (1-10) -# 'writing_english_scale', #writing scale (1-10) -# 'numeracy_scale', #numeracy scale (1-10) -# 'computer_scale', #computer use scale (1-10) -# 'transportation_bool', #need transportation support (bool) -# 'caregiver_bool', #is a primary care giver bool -# 'housing', #housing situation 1-10 -# 'income_source', #source of income 1-10 -# 'felony_bool', #has a felony bool -# 'attending_school', #currently a student bool -# 'currently_employed', #currently employed bool -# 'substance_use', #disorder, bool -# 'time_unemployed', #number of years unemployed -# 'need_mental_health_support_bool'] #need support -# Options: RandomForestRegressor, LinearRegression, GradientBoostingRegressor, SVR +# Options: RandomForestRegressor, LinearRegression, GradientBoostingRegressor, SVR MODEL_TYPE=SVR MODEL_OUTPUT_NAME=svr_model.pkl From 92de16cdc9ce740bd8361f27832796e9efb1dfd8 Mon Sep 17 00:00:00 2001 From: jiayangliu Date: Mon, 2 Dec 2024 14:04:45 -0800 Subject: [PATCH 29/29] feat: feature cols in .env --- app/clients/.env | 1 + 1 file changed, 1 insertion(+) diff --git a/app/clients/.env b/app/clients/.env index 2313417c..cd205ec6 100644 --- a/app/clients/.env +++ b/app/clients/.env @@ -1,4 +1,5 @@ FEATURE_COLS_IN_SEQ=["age", "gender", "work_experience", "canada_workex", "dep_num", "canada_born", "citizen_status", "level_of_schooling", "fluent_english", "reading_english_scale", "speaking_english_scale", "writing_english_scale", "numeracy_scale", "computer_scale", "transportation_bool", "caregiver_bool", "housing", "income_source", "felony_bool", "attending_school", "currently_employed", "substance_use", "time_unemployed", "need_mental_health_support_bool"] +#FEATURE_COLS_IN_SEQ=["age", "gender", "canada_workex", "work_experience", "dep_num", "canada_born", "citizen_status", "level_of_schooling", "fluent_english", "reading_english_scale", "speaking_english_scale", "writing_english_scale", "numeracy_scale", "computer_scale", "transportation_bool", "caregiver_bool", "housing", "income_source", "felony_bool", "attending_school", "currently_employed", "substance_use", "time_unemployed", "need_mental_health_support_bool"] # Options: RandomForestRegressor, LinearRegression, GradientBoostingRegressor, SVR