在使用 Jupyter notebook 時,我從來沒有遇到過這個fit()功能的問題。但是使用此代碼,我可以:
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')
X = data.drop(columns=['Survived'])
y = data['Survived']
model = DecisionTreeClassifier
model.fit(X, y)
prediction = model.predict(test_data)
prediction
pandas 成功讀取了 train.csv 和 test.csv 檔案(我在 Jupyter 中可視化了 X 和 Y)。
輸出:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_23200\3416706318.py in <module>
9
10 model = DecisionTreeClassifier
---> 11 model.fit(X, y)
12 prediction = model.predict(test_data)
13 prediction
TypeError: fit() missing 1 required positional argument: 'y'
如何修復此錯誤?
使用的資料: https ://www.kaggle.com/competitions/titanic/data?select=train.csv
uj5u.com熱心網友回復:
修復錯誤(語法錯誤):
首先你遇到的錯誤可以通過在呼叫模型的時候加括號來修復model = DecisionTreeClassifier()
在模型中添加括號后,代碼將再次遇到錯誤,因為您的X資料有多個帶有字串值的列。訓練模型時,演算法(DecisionTreeClassifier)將只接受 X 和 y 的數值。請參閱此鏈接了解更多詳情。
uj5u.com熱心網友回復:
您的資料集在該級別沒有“幸存”列,或者 data.drop() 進行了就地洗掉,或者可能是第三個怪異的替代方案。無論哪種方式,這種行為都是由于向未為此準備的函式提供 None 引數引起的,python 只是忽略它根本沒有提供。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/528381.html
