Top.Mail.Ru
Ответы

Питон. Создание класса модели

Помогите, пожалуйста, с кодом.
Создайте класс NearestNeighborClassificator для модели классификации методом ближайших соседей. В этом задании будет только обучение, а в следующем — предсказание.
Добавьте в класс метод fit(). Для метода ближайшего соседа обучение модели — это запоминание всей обучающей выборки. В ней predict() будет искать ближайший объект.
Сохраните:

признаки обучающей выборки в атрибуте self.features_train;
целевой признак — self.target _train.

Ничего страшного, если атрибуты называются так же, как параметры.
Обучите модель, напечатайте на экране её атрибуты (уже в прекоде).

import pandas as pd
from scipy.spatial import distance

columns = ['комнаты', 'площадь', 'кухня', 'пл. жилая', 'этаж', 'всего этажей', 'кондиционер']

df_train = pd.DataFrame([
[1, 38.5, 6.9, 18.9, 3, 5, 1],
[1, 38.0, 8.5, 19.2, 9, 17, 0],
[1, 34.7, 10.3, 19.8, 1, 9, 0],
[1, 45.9, 11.1, 17.5, 11, 23, 1],
[1, 42.4, 10.0, 19.9, 6, 14, 0],
[1, 46.0, 10.2, 20.5, 3, 12, 1],
[2, 77.7, 13.2, 39.3, 3, 17, 1],
[2, 69.8, 11.1, 31.4, 12, 23, 0],
[2, 78.2, 19.4, 33.2, 4, 9, 0],
[2, 55.5, 7.8, 29.6, 1, 25, 1],
[2, 74.3, 16.0, 34.2, 14, 17, 1],
[2, 78.3, 12.3, 42.6, 23, 23, 0],
[2, 74.0, 18.1, 49.0, 8, 9, 0],
[2, 91.4, 20.1, 60.4, 2, 10, 0],
[3, 85.0, 17.8, 56.1, 14, 14, 1],
[3, 79.8, 9.8, 44.8, 9, 10, 0],
[3, 72.0, 10.2, 37.3, 7, 9, 1],
[3, 95.3, 11.0, 51.5, 15, 23, 1],
[3, 69.3, 8.5, 39.3, 4, 9, 0],
[3, 89.8, 11.2, 58.2, 24, 25, 0],
], columns=columns)


train_features = df_train.drop('кондиционер', axis=1)
train_target = df_train['кондиционер']

df_test = pd.DataFrame([
[1, 36.5, 5.9, 17.9, 2, 7, 0],
[2, 71.7, 12.2, 34.3, 5, 21, 1],
[3, 88.0, 18.1, 58.2, 17, 17, 1],
], columns=columns)

test_features = df_test.drop('кондиционер', axis=1)

# < напишите код здесь >

model = NearestNeighborClassificator()
model.fit (train_features, train_target)
print(model.features_train.head())
print( model.target _train.head())



Подсказка
class NearestNeighborClassificator:

def fit(self, features_train, target_train):

self.features_train = # < напишите код здесь >

self.target_train = # < напишите код здесь >

По дате
По рейтингу
Аватар пользователя
Профи

Вот код класса NearestNeighborClassificator, который удовлетворяет требованиям задания:

12345
 class NearestNeighborClassificator: 
     
    def fit(self, features_train, target_train): 
        self.features_train = features_train 
        self.target_train = target_train 

Вы можете добавить этот код в заготовку и запустить ячейку, чтобы убедиться, что класс создан правильно.

После запуска ячейки с созданием экземпляра класса и вызовом метода fit, вы должны получить на выходе первые 5 строк атрибута features_train и target_train:

12345678910111213
    комнаты  площадь  кухня  пл. жилая  этаж  всего этажей 
0        1     38.5    6.9       18.9     3             5 
1        1     38.0    8.5       19.2     9            17 
2        1     34.7   10.3       19.8     1             9 
3        1     45.9   11.1       17.5    11            23 
4        1     42.4   10.0       19.9     6            14 
 
0    1 
1    0 
2    0 
3    1 
4    0 
Name: кондиционер, dtype: int64 
Аватар пользователя
Оракул

Вот как вы можете создать класс NearestNeighborClassificator для модели классификации методом ближайших соседей и добавить в него метод fit():

12345
 class NearestNeighborClassificator: 
    def fit(self, features_train, target_train): 
        self.features_train = features_train 
        self.target_train = target_train 
 

В этом коде мы создаем класс NearestNeighborClassificator и добавляем в него метод fit(). Метод fit() принимает два параметра: features_train и target_train. Внутри метода fit() мы сохраняем эти параметры в атрибутах self.features_train и self.target _train соответственно.

Теперь вы можете использовать этот класс для обучения модели. Вот как это выглядит в вашем коде:

12345
 model = NearestNeighborClassificator() 
model.fit(train_features, train_target) 
print(model.features_train.head()) 
print(model.target_train.head()) 
 

В этом коде мы создаем экземпляр класса NearestNeighborClassificator и вызываем его метод fit() для обучения модели. Затем мы выводим на экран первые пять строк атрибутов features_train и target_train модели.