Синтаксическая ошибка в курсе python sklearn code mo sh Python. Я был бы признателен, если бы кто-нибудь мог мне помочь - PullRequest
0 голосов
/ 09 июля 2020

Я изучаю курс Python с программированием Mo sh и получаю сообщение об ошибке с некоторым кодом машинного обучения

Код следующий ->

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

music_data = pd.read_csv('music.csv')
X = music_data.drop(columns=['genre'])
y = music_data['genre']

model = DecisionTreeClassifier
X_train, X_test, y_train, y_train = train_test_split(X, y, test_size=0.2)
model.fit(X_train, y_train)
predictions = model.predict(X_test)

score = accuracy_score(y_test, predictions)
score

Я появляется сообщение об ошибке ->

TypeError                                 Traceback (most recent call last)
<ipython-input-28-0880d58e9ac4> in <module>
 10 model = DecisionTreeClassifier
 11 X_train, X_test, y_train, y_train = train_test_split(X, y, test_size=0.2)
---> 12 model.fit(X_train, y_train)
 13 predictions = model.predict(X_test)
 14 

TypeError: fit() missing 1 required positional argument: 'y'

Я новичок в этих библиотеках и могу решить проблему. Я благодарен, если вы могли бы мне помочь.

1 Ответ

0 голосов
/ 09 июля 2020

Ошибка возникает из-за того, что вы не генерируете экземпляр модели.

model = DecisionTreeClassifier

Это неверно, потому что DecisionTreeClassifier - это функция, а не метод. Чтобы создать модель, вам нужно заменить строку кода выше на:

model = DecisionTreeClassifier()

Это создаст модель, и теперь вы можете передавать данные, чтобы соответствовать ей, и выполнять все дальнейшие операции (прогнозирование, оценка и т. Д. c ...).

Кроме того, как указал Гэвин Вонг, есть ошибка при использовании train_test_split(), потому что вы определили y_train дважды.

...