根据数据训练模型。现在我需要创建一个根据输入数据进行预测的服务,即我输入数据 - 它会给我结果。您如何通过这个模型传递新数据?
数据
行代表患者,列代表属性。
各属性说明:
属性 | 解码 |
---|---|
ID | 唯一的患者标识符 |
性别 | 患者性别:“Male”- 男性,“Female”- 女性,“Other”- 其他 |
年龄 | 患者年龄 |
高血压 | 高血压:0 - 无高血压,1 - 高血压 |
心脏病 | 心脏病:0 - 无疾病,1 - 疾病 |
曾经结婚过 | 患者已婚:“否”——未婚,“是”——已婚 |
工作类型 | 工作类型:“私人”- 私人雇员,“自营职业”- 自雇人士,“政府工作”- 政府工作,“儿童”- 儿童(不工作),“从未工作过”- 从未工作过 |
居住类型 | 住宿类型:“Rural”- 农村,“Urban”- 城市 |
平均葡萄糖水平 | 平均血糖水平 |
体重指数 | 体重指数 |
吸烟状态 | 吸烟状况:“以前吸烟” - 以前吸烟,“从不吸烟” - 从未吸烟,“吸烟” - 吸烟,“未知” - 没有信息 |
中风 | 行程:0 - 无行程,1 - 行程 |
from catboost import CatBoostClassifier
# Разделение данных на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X_resampled,y_resampled, test_size=0.3, random_state=42)
# Создание и обучение модели CatBoost
catboost_model_first = CatBoostClassifier(random_state=42, iterations=10000, learning_rate=0.1, depth=6, verbose=0)
catboost_model_first.fit(X_train, y_train)
# Предсказания на тестовой выборке
y_pred_test_catboost = catboost_model_first.predict(X_test)
# Предсказания на обучающей выборке
y_pred_train_catboost = catboost_model_first.predict(X_train)
# Вывод метрик для тестовой выборки
print("Тестовая выборка (CatBoost):")
print(classification_report(y_test, y_pred_test_catboost), 'roc_auc', roc_auc_score(y_test, y_pred_test_catboost))
ConfusionMatrixDisplay(confusion_matrix(y_test, y_pred_test_catboost), display_labels=['No Stroke', 'Stroke']).plot()
# Вывод метрик для обучающей выборки
print("Обучающая выборка (CatBoost):")
print(classification_report(y_train, y_pred_train_catboost), 'roc_auc', roc_auc_score(y_train, y_pred_train_catboost))
ConfusionMatrixDisplay(confusion_matrix(y_train, y_pred_train_catboost), display_labels=['No Stroke', 'Stroke']).plot()
如果突然需要整台笔记本电脑
https://colab.research.google.com/drive/1a4lm8UZFLZFrRMWuqoJ3qzbXf6Bkl-cy?usp=sharing