ISBN :
Возрастное ограничение : 12
Дата обновления : 04.04.2024
y = data['disease']
# Разделение данных на обучающий и тестовый наборы
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Обучение модели случайного леса
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# Прогнозирование риска заболеваний на тестовом наборе
y_pred = model.predict(X_test)
# Оценка качества модели
accuracy = accuracy_score(y_test, y_pred)
print("Точность модели на тестовом наборе данных:", accuracy)
```
В результате выполнения кода мы получаем обученную модель машинного обучения, способную предсказывать риск заболеваний на основе предоставленных медицинских данных. Кроме того, мы получаем оценку точности модели на тестовом наборе данных, которая позволяет оценить ее эффективность и надежность.
Итоговый код представляет собой программу на языке Python, которая загружает данные, обучает модель классификатора (например, случайного леса) на этих данных, делает прогнозы для новых наблюдений и оценивает точность модели. Полученная модель может быть использована для прогнозирования риска заболеваний на основе новых медицинских данных, что может быть полезным инструментом для врачей и медицинских специалистов в принятии решений о диагностике, лечении и профилактике заболеваний.
Задача 3.
Классификация изображений медицинских сканов
Описание:
В медицинской области существует потребность в автоматической классификации изображений медицинских сканов, таких как снимки рентгеновских лучей, магнитно-резонансная томография (МРТ) или компьютерная томография (КТ). Это может помочь в быстрой и точной диагностике различных заболеваний, таких как рак, пневмония, инсульт и другие.
```python
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# Загрузка данных
train_data_dir = 'path_to_training_data_directory'
test_data_dir = 'path_to_test_data_directory'
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
train_data_dir,
target_size=(150, 150),
batch_size=32,
class_mode='binary')
test_generator = test_datagen.flow_from_directory(
test_data_dir,
target_size=(150, 150),
batch_size=32,
class_mode='binary')
# Создание модели CNN
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)),
MaxPooling2D(2, 2),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D(2, 2),
Conv2D(128, (3, 3), activation='relu'),
MaxPooling2D(2, 2),
Conv2D(128, (3, 3), activation='relu'),
MaxPooling2D(2, 2),
Flatten(),
Dense(512, activation='relu'),
Dense(1, activation='sigmoid')
])
# Компиляция модели
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
# Обучение модели
history = model.fit(
train_generator,
steps_per_epoch=train_generator.samples/train_generator.batch_size,
epochs=10,
validation_data=test_generator,
validation_steps=test_generator.samples/test_generator.batch_size)
# График точности и потерь
plt.plot(history.history['accuracy'], label='accuracy')
plt.plot(history.history['val_accuracy'], label='val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.show()
```
Этот пример демонстрирует создание и обучение модели сверточной нейронной сети (CNN) для классификации медицинских изображений. Обратите внимание, что для запуска этого кода вам потребуется наличие набора данных медицинских изображений и указание правильных путей к этим данным в переменных `train_data_dir` и `test_data_dir`.
Разберем этапы кода подробнее.
1. Импорт библиотек:
```python
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
```
– `numpy` используется для работы с массивами чисел.
– `matplotlib.pyplot` используется для построения графиков.
– `tensorflow` – фреймворк глубокого обучения.
– `ImageDataGenerator` используется для предварительной обработки изображений перед подачей их в модель.
– `Sequential` используется для создания последовательной модели.
– `Conv2D`, `MaxPooling2D`, `Flatten` и `Dense` – типы слоев нейронной сети.
2. Загрузка данных:
```python
train_data_dir = 'path_to_training_data_directory'
test_data_dir = 'path_to_test_data_directory'
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
train_data_dir,
Все книги на сайте предоставены для ознакомления и защищены авторским правом