Skip to content

Conversation

@AnanthVands
Copy link

What are the changes?
Added and organized heart attack prediction work using classical machine learning and deep learning approaches. This includes cleaned data, baseline models, and an extended neural network pipeline.

Who worked on the changes?
Ananth: Developed models, analysis, and evaluation metrics. Did have discussions with Juweria on how we would both proceed.

New Components/Features
Heart_attack_model_Ananth.ipynb: Logistic Regression and Random Forest with EDA

deep_learning_heart_attack.ipynb: PyTorch-based DeepHeartNet model + feature selection

heart_attack_dataset.csv: Final cleaned dataset used across notebooks

Enhanced Components/Features
Added visuals: feature importance, ROC curves, confusion matrices

TensorBoard logging for neural net training

Added summary output cells and hyperparameter tuning logic

Additional Notes
Classical models gave 50–53% F1

Neural net tuning improved results slightly (~61% F1 best so far)

Results suggest feature quality or label imbalance limits performance

TODOs
Documentation for the deep learning model

@AnanthVands AnanthVands requested review from a team as code owners May 12, 2025 04:19
@github-actions
Copy link

🔒 Security Scan Results

🔒 Security Scan Results
=========================

Bandit Scan Results:
-------------------
Run started:2025-05-12 04:20:30.640721

Test results:
>> Issue: [B113:request_without_timeout] Call to requests without timeout
   Severity: Medium   Confidence: Low
   CWE: CWE-400 (https://cwe.mitre.org/data/definitions/400.html)
   More Info: https://bandit.readthedocs.io/en/1.8.3/plugins/b113_request_without_timeout.html
   Location: ./data_science/voice_assistant/generate_response.py:14:10
13	def get_request(query):
14	    req = requests.get(f'https://www.google.com/search?q={query}')
15	

--------------------------------------------------
>> Issue: [B404:blacklist] Consider possible security implications associated with the subprocess module.
   Severity: Low   Confidence: High
   CWE: CWE-78 (https://cwe.mitre.org/data/definitions/78.html)
   More Info: https://bandit.readthedocs.io/en/1.8.3/blacklists/blacklist_imports.html#b404-import-subprocess
   Location: ./data_science/voice_assistant/text_to_speech.py:4:0
3	import os
4	import subprocess
5	# Used to get response from user input

--------------------------------------------------
>> Issue: [B607:start_process_with_partial_path] Starting a process with a partial executable path
   Severity: Low   Confidence: High
   CWE: CWE-78 (https://cwe.mitre.org/data/definitions/78.html)
   More Info: https://bandit.readthedocs.io/en/1.8.3/plugins/b607_start_process_with_partial_path.html
   Location: ./data_science/voice_assistant/text_to_speech.py:12:4
11	    time.sleep(2)
12	    subprocess.run(['say', response], check=True)
13	

--------------------------------------------------
>> Issue: [B603:subprocess_without_shell_equals_true] subprocess call - check for execution of untrusted input.
   Severity: Low   Confidence: High
   CWE: CWE-78 (https://cwe.mitre.org/data/definitions/78.html)
   More Info: https://bandit.readthedocs.io/en/1.8.3/plugins/b603_subprocess_without_shell_equals_true.html
   Location: ./data_science/voice_assistant/text_to_speech.py:12:4
11	    time.sleep(2)
12	    subprocess.run(['say', response], check=True)
13	

--------------------------------------------------

Code scanned:
	Total lines of code: 963
	Total lines skipped (#nosec): 0
	Total potential issues skipped due to specifically being disabled (e.g., #nosec BXXX): 0

Run metrics:
	Total issues (by severity):
		Undefined: 0
		Low: 3
		Medium: 1
		High: 0
	Total issues (by confidence):
		Undefined: 0
		Low: 1
		Medium: 0
		High: 3
Files skipped (0):

No critical security issues detected.

The code has passed all critical security checks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant