2023. 12. 28. 20:13ㆍ카테고리 없음
고혈압 예측 모델을 만들기 위해서는 관련된 의료 데이터가 필요합니다. 고혈압 예측에 사용될 수 있는 데이터에는 환자의 건강 지표, 가족력, 식습관, 운동 습관 등이 포함될 수 있습니다. 이러한 데이터를 사용하여 머신러닝 모델을 학습하고, 새로운 환자의 정보를 입력하면 해당 환자가 고혈압에 노출될 가능성을 예측하는 모델을 만들어 볼 수 있습니다. 다음은 가상의 고혈압 예측 모델을 만들기 위한 간단한 예제 코드입니다. 이 코드는 신경망 모델을 사용하여 고혈압 예측을 수행합니다. 주어진 데이터셋이 없기 때문에, 데이터셋을 생성하는 부분은 임의의 가상 데이터를 사용하였습니다.
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score, classification_report
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# 가상의 고혈압 데이터 생성
np.random.seed(42)
num_samples = 1000
features = {
'Age': np.random.randint(30, 70, num_samples),
'BMI': np.random.uniform(18.5, 35, num_samples),
'Exercise_Hours': np.random.uniform(0, 10, num_samples),
'Family_History': np.random.choice([0, 1], num_samples),
'Sodium_Intake': np.random.uniform(1000, 5000, num_samples),
'Potassium_Intake': np.random.uniform(2000, 4000, num_samples)
}
labels = np.random.choice([0, 1], num_samples)
df = pd.DataFrame({**features, 'High_Blood_Pressure': labels})
# 데이터 전처리
X = df.drop('High_Blood_Pressure', axis=1)
y = df['High_Blood_Pressure']
# 데이터 정규화
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 학습 데이터와 테스트 데이터로 분할
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
# 모델 구축
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(X_train.shape[1],)))
model.add(Dense(32, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 모델 컴파일
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 모델 학습
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
# 모델 평가
y_pred_proba = model.predict(X_test)
y_pred = (y_pred_proba > 0.5).astype(int)
accuracy = accuracy_score(y_test, y_pred)
print(f"Test Accuracy: {accuracy:.4f}")
# 분류 보고서 출력
print("\nClassification Report:")
print(classification_report(y_test, y_pred))
이 코드에서는 가상의 고혈압 데이터를 생성하고, 데이터를 전처리한 후에 TensorFlow와 Keras를 사용하여 간단한 신경망 모델을 학습하고 평가합니다. 코드에서 사용한 데이터는 임의로 생성되었으며, 실제 의료 데이터셋을 사용할 경우에는 데이터의 특성과 구조에 따라 모델을 조정해야 합니다.
1. 데이터 생성 및 전처리
pandas를 사용하여 가상의 고혈압 데이터를 생성하고, StandardScaler를 사용하여 데이터를 정규화합니다.
2. 데이터 분할
train_test_split 함수를 사용하여 데이터를 학습용과 테스트용으로 분할합니다.
3. 모델 구축
Sequential 모델을 사용하여 간단한 신경망 모델을 구축합니다.
4. 모델 컴파일
모델의 손실 함수와 최적화 알고리즘을 설정하고, compile 메서드를 사용하여 모델을 컴파일합니다.
5. 모델 학습
학습 데이터를 사용하여 모델을 학습합니다.
6. 모델 평가
테스트 데이터를 사용하여 모델을 평가하고, 정확도와 분류 보고서를 출력합니다.
이 코드는 가상의 데이터를 사용한 단순한 예제일 뿐이며, 실제 의료 데이터에 대한 모델을 구축할 때에는 데이터의 특성, 분포, 불균형 등을 고려하여 더 신중한 접근이 필요합니다. 또한, 의료 데이터의 특성 상 개인정보 보호 및 윤리적인 측면에 주의해야 합니다.