search icon search icon ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ

Инженерный тур. 1 этап

Задача 1.1.(100 баллов)
Машинное обучение
Тема: классификация

Условие

Требуется построить модель на объектах из тренировочного набора данных и с ее помощью предсказать класс для объектов из тестового набора данных. Решение будет оценено при помощи 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.

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')
text slider background image text slider background image
text slider background image text slider background image text slider background image text slider background image