python-Fehler Können damit nicht umgehen Mischung aus multiclass und kontinuierliche-multioutput
im immer diese Fehlermeldung "Can' T handle Mischung aus multiclass und kontinuierliche-multioutput " wenn ich versuche, um die Genauigkeit meines Modells. versucht herauszufinden, was ist goin auf, für eine Weile , aber ich habe keine Ahnung und im verwechselt, was falsch ist.
# TRAINING data
#Convert crime labels to numbers
df_crime = preprocessing.LabelEncoder()
crime = df_crime.fit_transform(train.Category)
#Get binarized weekdays, districts, and hours using dummy variables
days = pd.get_dummies(train.DayOfWeek)
district = pd.get_dummies(train.PdDistrict)
hour = train.Dates.dt.hour
hour = pd.get_dummies(hour)
#Build new array
train_data = pd.concat([hour, days, district], axis=1)
train_data['crime']=crime
#train_data.head()
#Repeat for test data
days = pd.get_dummies(test.DayOfWeek)
district = pd.get_dummies(test.PdDistrict)
hour = test.Dates.dt.hour
hour = pd.get_dummies(hour)
test_data = pd.concat([hour, days, district], axis=1)
features = ['Friday', 'Monday', 'Saturday', 'Sunday', 'Thursday', 'Tuesday',
'Wednesday', 'BAYVIEW', 'CENTRAL', 'INGLESIDE', 'MISSION',
'NORTHERN', 'PARK', 'RICHMOND', 'SOUTHERN', 'TARAVAL', 'TENDERLOIN']
training, testing = train_test_split(train_data, train_size=.60)
#bernoulliNB
# predicting only on the training data
model_B = BernoulliNB()
model_B.fit(training[features], training['crime'])
predicted2 = np.array(model_B.predict_proba(testing[features]))
log_loss(testing['crime'], predicted2)
score_b = accuracy_score(testing['crime'], predicted2)
print(score_b)
ValueError Traceback (most recent call last)
<ipython-input-27-7d9db3ef89cc> in <module>()
----> 1 score_b = accuracy_score(testing['crime'], predicted2)
2
3 print(score_b)
C:\Users\Michael\Anaconda3\lib\site-packages\sklearn\metrics\classification.py in accuracy_score(y_true, y_pred, normalize, sample_weight)
170
171 # Compute accuracy for each possible representation
--> 172 y_type, y_true, y_pred = _check_targets(y_true, y_pred)
173 if y_type.startswith('multilabel'):
174 differing_labels = count_nonzero(y_true - y_pred, axis=1)
C:\Users\Michael\Anaconda3\lib\site-packages\sklearn\metrics\classification.py in _check_targets(y_true, y_pred)
80 if len(y_type) > 1:
81 raise ValueError("Can't handle mix of {0} and {1}"
---> 82 "".format(type_true, type_pred))
83
84 # We can't have more than one value on y_type => The set is no more needed
ValueError: Can't handle mix of multiclass and continuous-multioutput
- Haben Sie im Vergleich die docs für
log_loss
undaccuracy_score
? Überprüft die Abmessungen oder Typen, die 2 Eingänge, und verglichen Sie mit den Erwartungen? In anderen Worten, welche Schritte haben Sie ergriffen, um diesen Punkt zu verstehen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
predicted2
ist ein array von class-Wahrscheinlichkeiten (.predict_proba(X)
Ergebnis);accuracy_score
nimmt nur die oberen Klassen (predict(X)
Ergebnis). Es bedeutet, dass diese funktionieren sollte:Aber anrufen, Vorhersagen/predict_proba zwei mal ist keine gute Idee: es ist ineffizient, und Sie können nicht passenden erzielt, wenn die Vorhersage ist nicht-deterministisch aus irgendeinem Grund. So ist es besser, etwas zu tun: