اذهب إلى المحتوى

السؤال

نشر (معدل)

قمت ببناء نموذج، لكن يظهر لي دوماً الخطأ التالي:

#استيراد المكتبات
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
#تحميل البيانات
data = load_breast_cancer().data
labels = load_breast_cancer().target
# تقسيم البيانات
X_train, y_train,X_test, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True)
c1 = LogisticRegression(multi_class='multinomial', random_state=1)
c2 = RandomForestClassifier(n_estimators=50, random_state=1)
c3 = GaussianNB()
ec1 = VotingClassifier(estimators=[ ('lr', c1), ('rf', c2), ('gnb', c3)], voting='hard')
ec1 = ec1.fit(X_train, y_train)
print(ec1.score(X_test,y_test))

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-16-46caf1469fab> in <module>
     17 
     18 ec1 = VotingClassifier(estimators=[ ('lr', c1), ('rf', c2), ('gnb', c3)], voting='hard')
---> 19 ec1 = ec1.fit(X_train, y_train)
     20 print(ec1.score(X_test,y_test))#0.9385964912280702

~\anaconda3\lib\site-packages\sklearn\ensemble\_voting.py in fit(self, X, y, sample_weight)
    207 
    208         """
--> 209         check_classification_targets(y)
    210         if isinstance(y, np.ndarray) and len(y.shape) > 1 and y.shape[1] > 1:
    211             raise NotImplementedError('Multilabel and multi-output'

~\anaconda3\lib\site-packages\sklearn\utils\multiclass.py in check_classification_targets(y)
    167     if y_type not in ['binary', 'multiclass', 'multiclass-multioutput',
    168                       'multilabel-indicator', 'multilabel-sequences']:
--> 169         raise ValueError("Unknown label type: %r" % y_type)
    170 
    171 

ValueError: Unknown label type: 'continuous-multioutput'

 

تم التعديل في بواسطة Meezo ML

Recommended Posts

  • 1
نشر

المشكلة في ترتيبك للمخرجات التي يردها التابع train_test_split.
الخطأ يظهر عندما تحاول القيام ب fitting على البيانات.

ec1 = ec1.fit(X_train, y_train)

ولحل المشكلة يجب التقيد بترتيب مخرجات التابع  train_test_split وهي كالتالي:

X_train, y_train, X_test, y_test

الكود بعد الإصلاح:

#استيراد المكتبات
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
#تحميل البيانات
data = load_breast_cancer().data
labels = load_breast_cancer().target

# تقسيم البيانات
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True)
c1 = LogisticRegression(multi_class='multinomial', random_state=1)
c2 = RandomForestClassifier(n_estimators=50, random_state=1)
c3 = GaussianNB()

ec1 = VotingClassifier(estimators=[ ('lr', c1), ('rf', c2), ('gnb', c3)], voting='hard')
ec1 = ec1.fit(X_train, y_train)
print(ec1.score(X_test,y_test))#0.9385964912280702

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...