Member 14557966 Ответов: 1

Как решить ошибку значения в Python при выполнении логистической регрессии?


<pre>Input:
X_train=train_df.drop("Survived",axis=1)
Y_train=train_df["Survived"]
X_test=test_df.drop("PassengerId",axis=1).copy()

X_train.head()
Y_train.head()
X_test.head()


Выход:
Р-Класс----Секс-----Возраст-------Лиственнице-----Тариф-------Вступил
3--------- 0 -----34.5------0---------7.82-------2
3--------- 1 -----47 ------0---------7----------0
2--------- 0 -----62 ------0---------9.68-------2
3--------- 0 -----27 ------0---------8.66-------0
3--------- 1 -----22 ------1---------12.2-------0




Ввод:
X_train.shape,Y_train.shape,X_test.shape

Выход:((891, 7), (891,), (418, 6))

вход:X_train.head()
выход:

Выжил---Pclass----Sex---Age----Parch--- - Fare--- - Встал
0----------3---------0------22-------0--------7.25------0

1----------1---------1------38-------0--------71.2833----1

1----------3---------1-------26------0--------7.925------0

1----------1---------1-------35------0---------53.1------0

0----------3---------0-------35------0---------8.05------0


# Logistic Regression

logreg = LogisticRegression()
logreg.fit(X_train, Y_train)
Y_pred = logreg.predict(X_test)
acc_log = round(logreg.score(X_train, Y_train) * 100, 2)
acc_log



c:\users\user\appdata\local\programs\python\python37\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.
  FutureWarning)



ValueError                                Traceback (most recent call last)
<ipython-input-64-5854ca91fc64> in <module>
      3 logreg = LogisticRegression()
      4 logreg.fit(X_train, Y_train)
----> 5 Y_pred = logreg.predict(X_test)
      6 acc_log = round(logreg.score(X_train, Y_train) * 100, 2)
      7 acc_log

c:\users\user\appdata\local\programs\python\python37\lib\site-packages\sklearn\linear_model\base.py in predict(self, X)
    287             Predicted class label per sample.
    288         """
--> 289         scores = self.decision_function(X)
    290         if len(scores.shape) == 1:
    291             indices = (scores > 0).astype(np.int)

c:\users\user\appdata\local\programs\python\python37\lib\site-packages\sklearn\linear_model\base.py in decision_function(self, X)
    268         if X.shape[1] != n_features:
    269             raise ValueError("X has %d features per sample; expecting %d"
--> 270                              % (X.shape[1], n_features))
    271 
    272         scores = safe_sparse_dot(X, self.coef_.T,

ValueError: X has 6 features per sample; expecting 7



Что я уже пробовал:

Я попытался удалить уцелевший столбец из фрейма данных поезда, но все равно это бесполезно.
Более того, удаление столбца Passengerid из фрейма тестовых данных удаляет его из фрейма данных, но удаление выжившего столбца из фрейма данных поезда не удаляет его.

1 Ответов

Рейтинг:
2

Richard MacCutchan

Почти то же самое, что и ваши предыдущие вопросы по этому вопросу: сообщение об ошибке говорит вам, что параметр X требует 7 значений функций. Однако поскольку это относится к 1.1. обобщенные линейные модели — scikit-learn 0.21.3 документация[^] библиотека, вы должны попробовать справочный форум, который они предоставляют.