亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解決 Kaggle 的泰坦尼克號機器學習

解決 Kaggle 的泰坦尼克號機器學習

慕婉清6462132 2021-06-30 10:01:23
我正在嘗試用 Python 解決 Kaggle 的泰坦尼克號。但是我在嘗試擬合我的數據時出錯。這是我的代碼:import pandas as pdfrom sklearn import linear_modeldef clean_data(data):    data["Fare"] = data["Fare"].fillna(data["Fare"].dropna().median())    data["Age"] = data["Age"].fillna(data["Age"].dropna().median())    data.loc[data["Sex"] == "male", "Sex"] = 0    data.loc[data["Sex"] == "female", "Sex"] = 1    data.loc["Embarked"] = data["Embarked"].fillna("S")    data.loc[data["Embarked"] == "S", "Embarked"] = 0    data.loc[data["Embarked"] == "C", "Embarked"] = 1    data.loc[data["Embarked"] == "Q", "Embarked"] = 2train = pd.read_csv("train.csv")clean_data(train)target = train["Survived"].valuesfeatures = train[["Pclass", "Age","Sex","SibSp", "Parch"]].valuesclassifier = linear_model.LogisticRegression()classifier_ = classifier.fit(features, target) # Here is where error comes from錯誤是這樣的:ValueError: Input contains NaN, infinity or a value too large for dtype('float64').你能幫我嗎?
查看完整描述

3 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

在使用特征和目標擬合模型之前,最佳做法是檢查您要用于構建模型的所有特征中是否都存在空值。您可以了解以下內容以進行檢查

dataframe_name.isnull().any() 如果至少存在一個 Nan 值,這將給出列名和 True

dataframe_name.isnull().sum() 這將給出列名和存在多少 NaN 值的值

通過了解列名稱,您可以執行數據清理。這不會產生 NaN 的問題。


查看完整回答
反對 回復 2021-07-06
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

在運行任何 sklearn 代碼之前,您應該重置數據幀的索引:

df = df.reset_index()


查看完整回答
反對 回復 2021-07-06
  • 3 回答
  • 0 關注
  • 224 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號