본문 바로가기

분류 전체보기188

LSTM 딥러닝(데이터 전처리) 1. deathTable() 이 함수는 사망한 환자의 데이터를 선택하고 저장합니다. 특정 조건(예: 중환자실에서의 사망)에 따라 환자의 데이터를 필터링하고, 이러한 환자들의 데이터를 분석하거나 추가 처리를 위해 저장합니다. 2. patients_info() 이 함수는 병원 전체 환자의 데이터를 선별하고 저장합니다. 모든 환자 데이터를 스캔하여 필요한 정보만을 추출하고 정제하여 다른 분석이나 처리를 위한 준비를 합니다. 3. process_data() ICU와 차트 이벤트 파일에서 필요한 itemid를 선택합니다. 한 행에 여러 itemid가 있을 경우 이를 열 형식으로 변환하여 데이터의 가독성과 처리 용이성을 높입니다. 4. insert_patient_info() 이 함수는 patients_info()에.. 2023. 10. 3.
LSTM 딥러닝 (모델) AI 모델 개요 이 AI 모델은 PyTorch 라이브러리를 사용하여 구현되었으며, MIMIC-IV 데이터셋을 이용하여 ICU 환자의 예후(사망 위험)을 예측하는 모델입니다. 본 모델은 시퀀스 데이터 처리에 효율적인 LSTM(Long Short-Term Memory) 신경망을 활용해 개발되었으며, 각 환자의 연속적인 데이터를 입력으로 받아 사망 위험을 예측합니다. LSTM 구조에 대한 간략한 설명 2. 정적 데이터의 변환 정적 데이터는 3D 텐서 형태로 변환되어 LSTM과 함께 처리될 수 있도록 준비됩니다. 오버샘플링이 적용된 훈련 데이터와 그렇지 않은 테스트 데이터가 각각 준비됩니다. 3. DualInputModel 클래스 DualInputModel은 시계열 데이터와 정적 데이터를 동시에 처리할 수 있는.. 2023. 10. 3.
LSTM 딥러닝(결과) 전체 데이터: 생존(0) class: 48273 사망(1) class: 1917 => class 0이 너무 많아, 데이터의 불균형 해결 방법: 오버샘플링, 클래스 가중치 설정 데이터 불균형은 일반적으로 한 클래스의 샘플이 다른 클래스보다 훨씬 많을 때 발생하는 문제입니다. 이러한 불균형은 모델의 성능에 영향을 미칠 수 있으며, 특히 소수 클래스의 샘플을 올바르게 분류하는 데 어려움을 겪을 수 있습니다. 이 문제를 해결하기 위해 여러 전략을 사용할 수 있는데, 여기서는 오버샘플링과 클래스 가중치를 사용하여 이 문제를 해결했습니다. 오버샘플링: 오버샘플링은 소수 클래스의 샘플을 늘리는 방법으로, 기존 데이터를 복제하거나 기존 데이터에서 약간의 변형을 가하여 새로운 샘플을 생성하는 방법이 있습니다. 이러한 방.. 2023. 10. 3.
MIMIC 4 data set 환자를 식별하는 고유 id들 subject_id (환자 식별자): (입퇴원에 관계없는 환자 본인 식별자) subject_id는 환자를 고유하게 식별하기 위한 식별자입니다. 병원에서 환자의 의료 기록 번호를 익명화한 버전입니다. 이를 통해 특정 환자에 대한 정보를 추적하고 분석할 수 있습니다. hadm_id (입원 식별자): (병원에 입원할 때 부여되는 식별자, 퇴원 시 삭제) hadm_id는 환자 입원 정보를 고유하게 식별하기 위한 식별자입니다. 이 역시 병원에서 제공되며, 환자의 입원 기록을 익명화하여 식별합니다. hadm_id를 사용하여 환자의 입원 정보를 추적하고 연구에 활용할 수 있습니다. transfer_id (전송 식별자): transfer_id는 환자의 입원과 관련된 병동 내 이동을 고유하게.. 2023. 9. 26.
백준.다각형의 면적.2103.java https://www.acmicpc.net/problem/2166 2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net import java.util.*; import java.io.*; public class bj2103 { public static void main(String[] arg){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); HashMap sameX = new HashMap(); HashMap sameY = new HashMap(); try.. 2023. 9. 26.
백준.DFS와 BFS.1260.py https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import sys import queue def solution_dfs(graph, start): visit, visited, resalt = [start], set(), [] while visit: node = visit.pop() if node not in visited: visited.add(node) resalt.append(str(node)) vis.. 2023. 9. 23.