ValueError: не удалось преобразовать строку в число с плавающей точкой: 'Q' - PullRequest
0 голосов
/ 27 апреля 2020

Я новичок в программировании, и я работал с набором данных Titani c из Kaggle. Я пытался построить модель регрессии Logisti c после выполнения быстрого кодирования. Но я продолжаю получать ошибку. Я думаю, что ошибка вызвана из-за фиктивной переменной. Ниже мой код.

import numpy as np
import pandas as pd
import matplotlib as plt
import seaborn as sns

#Loading data
df=pd.read_csv(r"C:\Users\Downloads\train.csv")

#Deleting unwanted columns
df.drop(["PassengerId","Name","Cabin","Ticket"],axis=1,inplace=True)

#COunt of Missing values in each column
print(df.isnull().sum())

#Deleting rows with missing values based on column name
df.dropna(subset=['Embarked','Age'],inplace=True)
print(df.isnull().sum())

#One hot encoding for categorical variables
#Creating dummy variables for Sex column
dummies = pd.get_dummies(df.Sex)
dummies2=pd.get_dummies(df.Embarked)

#Appending the dummies dataframe with original dataframe
new_df= pd.concat([df,dummies,dummies2],axis='columns')

print(type(new_df))
#print(new_df.head(10))

#Drop the original sex,Embarked column and one of the dummy column for bth variables
new_df.drop(['Sex','Embarked'],axis='columns',inplace=True)
print(new_df.head(10))

new_df.info()

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix,accuracy_score

x = df.drop('Survived', axis=1)
y = df['Survived']

logmodel = LogisticRegression()

logmodel.fit(x, y)

1 Ответ

0 голосов
/ 27 апреля 2020

Как мы обсуждали в комментариях, вот решение:

Во-первых, вам нужно изменить переменные x и y, чтобы использовать new_df вместо df, например, так:

x = new_df.drop('Survived', axis=1)
y = new_df['Survived']

Затем вам нужно увеличить итерацию вашей модели регрессии Logisti c следующим образом:

logmodel = LogisticRegression(max_iter=1000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...