Python 3.x Sklearn预测蟒蛇3.5

Python 3.x Sklearn预测蟒蛇3.5,python-3.x,Python 3.x,我正在使用sklearn LogisticRegression训练逻辑回归模型。 我在尝试预测测试集时遇到了一个类型错误 代码: test_features=test[["Sex","Age","Pclass","Fare","Embarked"]].values myprediction=myfit2.predict(test_features) 错误: test_features=test[["Sex","Age","Pclass","Fare","Embarked"]].values m

我正在使用sklearn LogisticRegression训练逻辑回归模型。 我在尝试预测测试集时遇到了一个类型错误

代码:

test_features=test[["Sex","Age","Pclass","Fare","Embarked"]].values
myprediction=myfit2.predict(test_features)
错误:

test_features=test[["Sex","Age","Pclass","Fare","Embarked"]].values
myprediction=myfit2.predict(test_features)
float()参数必须是字符串或数字


我已经检查了几次语法,这可能是因为我使用的是Python 3.5。因为这在Python2.7上似乎工作得很好。非常感谢您帮助解决此错误。

问题在于数据包含NaN:

代码:

结果:

array([0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1,
       1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
       1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
       0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,
       0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0,
       1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0,
       0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1,
       0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1,
       0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1,
       1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1,
       1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,
       1, 0, 0, 0], dtype=int64)

类似的方法应该可以正常工作

您可以上传测试数据集吗?另外,您在这个测试数据集中有任何NaN或字符串吗?我已经插补了所有的NaN,并用字符串替换了所有分类变量,在将其输入到predict函数之前使用了整数。问题是,您使用的“sex”包含字符串而不是数字。函数的作用是:输入一个只有数字的数据集。您需要将“sex”转换为二进制,比如男性为1,女性为0。第一次代码已经这样做了:test[“sex”][test[“sex”]=“male”]=0 test[“sex”][test[“sex”]=“female”]=1 test[“counted”][test[“counted”]=“S”]=0 test[“counted”][test][“已登船”]=='C']=1个测试[“登船”][测试[“登船”]=='Q']=2,与列车组相同well@PoojaRavichandran查看我的新解决方案。您需要替换NaN。我确实用年龄的平均值替换了所有NaN。@PoojaRavichandran我刚刚发布了一个示例。这个方法有效并预测了幸存变量。酷!这个方法很有效。我使用了numpy.mean()填充NaN。用nanmean()替换它以某种方式解决了问题。不知道为什么!?非常感谢您抽出时间帮助我解决这个问题。非常感谢!