Получение кросс-балльной оценки для двух разных классификаторов - PullRequest
0 голосов
/ 30 марта 2019

Обработка пропущенных точек данных из предоставленного CSV тремя различными способами: 1.) Удалить все значения NaN 2.) Ввести все значения NaN 3.) Обработать NaN как значение (двоичный признак становится троичным).

- Затем реализуйте дерево решений и наивный байесовский классификатор для классификации результатов с каждым из трех указанных выше способов борьбы с пропущенными значениями. Итак, вы экспериментируете с 6 сценариями. - Выполнить 5-кратную перекрестную проверку и сообщить о точности, отзыве и оценках F1 для каждого из 6 сценариев

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

df = pd.read_csv("House_Votes.csv", names = column_names)
X = df.drop(['party'], 1)
y = df.party

tree = DecisionTreeClassifier()
gnb = GaussianNB()

#Change to binary for all columns and rows
df.replace(to_replace = 'y', value = 1, inplace = True)
df.replace(to_replace = 'n', value = 0, inplace = True)
df.replace(to_replace = 'republican', value = 1, inplace = True)
df.replace(to_replace = 'democrat', value = 0, inplace = True)
df.replace(to_replace='?', value=np.nan, inplace = True)

# set up 3 different dataframes
df_impute = df.fillna(df.mode().loc[0])
df_constant = df.replace(np.nan, 2)
df_discard = df.dropna(how = 'any')

Я запутался в том, как разделить данные с помощью X, а y и все еще использовать cross_val_score для каждого из различных фреймов данных. Я бы предположил, что как только вы сможете получить кросс-балльную оценку для каждого, который вы могли бы выполнить через цикл for и просто повторять каждый сценарий, но я не уверен.

...