python 未拟合错误:估计值未拟合,在使用模型之前调用“fit

j8ag8udp  于 2023-03-06  发布在  Python
关注(0)|答案(2)|浏览(217)

我在Macbook OSX 10.2.1(Sierra)上运行Python 3.5.2。
当我尝试从Kaggle运行泰坦尼克号数据集的一些代码时,我一直收到以下错误:
NotFittedError Traceback(最近调用最后)in()6 7 #使用测试集进行预测并打印它们。----〉8 my_prediction = my_tree_one. predicate(test_features)9 print(my_prediction)10
/库/框架/Python.框架/版本/3.5/库/Python 3.5/站点包/sklearn/树/树. py在预测(自我,X,检查_输入)429 """430--〉431 X =自我.验证_X_预测(X,检查_输入)432概率=自我.树_.预测(X)433 n_样本= X.形状[0]
/库/框架/Python. framework/版本/3.5/lib/python3.5/站点包/sklearn/tree/tree. py in_validate_X_predict(self,X,check_input)386 """每当尝试预测、应用、预测概率时验证X""" 387如果self. tree_为None:- -〉388引发NotFittedError("估计器未拟合",389 "在利用模型之前调用fit")390
未拟合错误:估计值未拟合,在利用模型之前调用fit
违规代码似乎是这样的:

# Impute the missing value with the median
test.Fare[152] = test.Fare.median()

# Extract the features from the test set: Pclass, Sex, Age, and Fare.
test_features = test[["Pclass", "Sex", "Age", "Fare"]].values

# Make your prediction using the test set and print them.
my_prediction = my_tree_one.predict(test_features)
print(my_prediction)

# Create a data frame with two columns: PassengerId & Survived. Survived contains your predictions
PassengerId =np.array(test["PassengerId"]).astype(int)
my_solution = pd.DataFrame(my_prediction, PassengerId, columns = ["Survived"])
print(my_solution)

# Check that your data frame has 418 entries
print(my_solution.shape)

# Write your solution to a csv file with the name my_solution.csv
my_solution.to_csv("my_solution_one.csv", index_label = ["PassengerId"])

这里是code其余部分的链接。
因为我已经调用了"fit"函数,所以我不能理解这个错误消息。我哪里出错了?谢谢你的时间。

    • Edit**:原来这个问题是从前面的代码块继承而来的。
# Fit your first decision tree: my_tree_one
my_tree_one = tree.DecisionTreeClassifier()
my_tree_one = my_tree_one.fit(features_one, target)

# Look at the importance and score of the included features
print(my_tree_one.feature_importances_)
print(my_tree_one.score(features_one, target))

以下行:* * 我的树_一个=我的树_一个.拟合(要素_一个,目标)**
产生错误:
ValueError:输入包含NaN、无穷大或对dtype("float32")而言太大的值。

vhmi4jdf

vhmi4jdf1#

该错误不言自明:features_onetarget数组确实包含NaN或无穷大值,因此估计量无法拟合,因此您不能将其用于以后的预测。
检查这些数组,并在拟合之前相应地处理NaN值。

insrf1ej

insrf1ej2#

可能是新的库包有这个问题。我在lgbm包中也遇到了同样的问题,并尝试了相应的较低版本的包,它得到了解决。

您可以尝试使用以下命令安装正确版本的软件包

pip install libraryName==x.x.x

pip3 install libraryName==x.x.x

相关问题