Инженерный тур. 1 этап
Требуется построить модель на объектах из тренировочного набора данных и с ее помощью предсказать класс для объектов из тестового набора данных. Решение будет оценено при помощи F-меры.
Материалы задачи: https://disk.yandex.ru/d/90OjxWTev0v-NQ.
Файл train.tsv содержит объекты из тренировочного набора данных и состоит из следующих колонок:
- \(id\) — идентификатор объекта;
- \(x_1 \dots x_{1000}\) — числовые признаки, среди их значений могут быть пропуски;
- \(y\) — класс объекта \(P\) или \(N\).
Файл test.tsv содержит объекты из тестового набора данных. Он схож по формату с train.tsv, но не содержит класс \(y\).
Требуется загрузить tsv-файл с предсказанием классов для объектов из тестового набора данных.
Для решения задачи необходимо считать тренировочную часть набора данных, заполнить пропуски в данных и нормализовать их. Затем обучить модель классификации и построить предсказание для тестовой части набора данных, произведя те же операции по преобразованию с ней.
Ниже представлено решение на языке Python.
from sklearn.dummy import DummyClassifier
import pandas as pd
train = pd.read_csv("train.tsv", sep='\t')
test = pd.read_csv("test.tsv", sep='\t')
trainX = train.drop(columns=["y", "id"])
trainY = train["y"]
testX = test.drop(columns=["id"])
submission = test[["id"]].copy()
clsf = DummyClassifier(random_state=0)
clsf.fit(trainX, trainY)
prediction = clsf.predict(testX)
submission["y"] = prediction
submission.to_csv("submission.tsv", sep='\t')
