使用逻辑回归解决泰坦尼克号机器学习问题

我是一名有志成为数据科学家的人。我偶然发现了泰坦尼克号数据集。我尝试使用逻辑回归来解决这个问题。然而,在尝试将逻辑回归模型拟合到训练集上时,我遇到了困难。以下是我的代码:

#importing the librariesimport numpy as npimport matplotlib.pyplot as pltimport pandas as pd#importing the datasetTitanic_train = pd.read_csv('train.csv').valuesTitanic_test = pd.read_csv('test.csv').valuescolumns = ['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked']Titanic_train = pd.DataFrame(Titanic_train, columns = columns )#splitting the training data into dependent and independent variableX = Titanic_train.loc[:,['Pclass', 'Sex','Age','SibSp','Parch','Fare']].valuesY = Titanic_train.loc[:, 'Survived'].valuesX = pd.DataFrame(Titanic_train, columns = ['Pclass', 'Sex','Age','SibSp','Parch','Fare'])Y = pd.DataFrame(Titanic_train, columns = ['Survived'])#working with missing datafrom sklearn.preprocessing import Imputerimputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)imputer = imputer.fit(X[['Age']])X[['Age']] = imputer.transform(X[['Age']])#dealing with categorical datafrom sklearn.preprocessing import LabelEncoder, OneHotEncoderLabelEncoder_X = LabelEncoder()X['Sex'] = LabelEncoder_X.fit_transform(X['Sex'])from sklearn.cross_validation import train_test_splitX_train, X_test, Y_train, y_test = train_test_split(X,Y,test_size = 0.4, random_state = 0)from sklearn.linear_model import LogisticRegressionclassifier = LogisticRegression(random_state = 0)classifier.fit(X_train, Y_train)# Predicting the Test set resultsy_pred = classifier.predict(X_test)

******我一直得到的错误如下:

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\validation.py:547: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().  y = column_or_1d(y, warn=True)Traceback (most recent call last):  File "<ipython-input-196-c1f2228de316>", line 3, in <module>    classifier.fit(X_train, Y_train)  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py", line 1217, in fit    check_classification_targets(y)  File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py", line 172, in check_classification_targets    raise ValueError("Unknown label type: %r" % y_type)ValueError: Unknown label type: 'unknown'*****

我该如何修复这个错误?


回答:

你需要将标签结果Y.Survived转换为float类型。以下代码可以正常运行:

Titanic_train = pd.read_csv('train.csv').valuesTitanic_test = pd.read_csv('test.csv').valuescolumns = ['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked']Titanic_train = pd.DataFrame(Titanic_train, columns = columns )#splitting the training data into dependent and independent variableX = Titanic_train.loc[:,['Pclass', 'Sex','Age','SibSp','Parch','Fare']].valuesY = Titanic_train.loc[:, 'Survived'].valuesX = pd.DataFrame(Titanic_train, columns = ['Pclass', 'Sex','Age','SibSp','Parch','Fare'])Y = pd.DataFrame(Titanic_train, columns = ['Survived'])Y = Y.Survived.astype("float")#working with missing datafrom sklearn.preprocessing import Imputerimputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)imputer = imputer.fit(X[['Age']])X[['Age']] = imputer.transform(X[['Age']])  #dealing with categorical datafrom sklearn.preprocessing import LabelEncoder, OneHotEncoderLabelEncoder_X = LabelEncoder()X['Sex'] = LabelEncoder_X.fit_transform(X['Sex'])from sklearn.cross_validation import train_test_splitX_train, X_test, Y_train, y_test = train_test_split(X,Y,test_size = 0.4, random_state = 0)from sklearn.linear_model import LogisticRegressionclassifier = LogisticRegression(random_state = 0)classifier.fit(X_train, Y_train)# Predicting the Test set resultsy_pred = classifier.predict(X_test)

请查找以下行:

Y = Y.Survived.astype("float")

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注