第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

是否可以通過機(jī)器學(xué)習(xí)學(xué)習(xí)和預(yù)測 NaN 值?

是否可以通過機(jī)器學(xué)習(xí)學(xué)習(xí)和預(yù)測 NaN 值?

PIPIONE 2023-06-13 16:32:41
我正在嘗試用兩個輸出值解決回歸問題。輸出值充當(dāng)傳入預(yù)訂值的兩個不同閾值,以接受或拒絕預(yù)訂。這兩個輸出值是在業(yè)務(wù)案例中手動設(shè)置的,但這應(yīng)在機(jī)器學(xué)習(xí)的幫助下自動完成。在業(yè)務(wù)案例中,其中一個輸出值可以是 Nan,那么所有預(yù)訂都將接受此標(biāo)準(zhǔn)。因此,如果一個輸出值未填充,則它對業(yè)務(wù)案例有效。例子:X_train = np.array([(1,1),(2,2),(3,3),(4,4)])Y_train =np.array([(1,1),(2,2),(3,3),(4,np.nan)])X_test = np.array([(5,5),(6,6),(7,7)])Y_test = np.array([(5,5),(6,np.nan),(7,7)])reg  = MLPRegressor()reg = reg.fit(X_train,Y_train)我的問題是當(dāng)我為輸出 Y_train/Y_test 設(shè)置 NaN 值時,例如 scikit-learn 會拋出錯誤。ValueError: Input contains NaN, infinity or a value too large for dtype('float64').我不想用平均值或 0 來估算這些值,因?yàn)槿缟纤觯笔е凳菢I(yè)務(wù)案例的有效設(shè)置。是否有可能用 scikit-learn 或一般的機(jī)器學(xué)習(xí)來解決這樣的問題?編輯:業(yè)務(wù)未設(shè)置的輸出值不直接存儲為 NaN 而是存儲為 -9999999999 以表示無窮大。我用 NaN 替換了這些值,因?yàn)槲艺J(rèn)為如此高的值會扭曲結(jié)果。所以如果我不替換任何東西,變量實(shí)際上會導(dǎo)致以下結(jié)果:X_train = np.array([(1,1),(2,2),(3,3),(4,4)])Y_train =np.array([(1,1),(2,2),(3,3),(4,-9999999999)])X_test = np.array([(5,5),(6,6),(7,7)])Y_test = np.array([(5,5),(6,-9999999999),(7,7)])是保留這些值比保留 NaN 更好,還是它們會扭曲結(jié)果而必須被忽略?
查看完整描述

3 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個贊

也許將您的問題分成兩個任務(wù)是一個可以接受的解決方案。一個用于回歸和分類是否提供數(shù)據(jù)。


X_train = np.array([(1,1),(2,2),(3,3),(4,4)])

Y1_train = np.array([(1,1),(2,2),(3,3),(4,4)])

Y2_train = np.array([(1,1),(1,1),(1,1),(1,0)])


X_test = np.array([(5,5),(6,6),(7,7)])

Y1_test = np.array([(5,5),(6,6),(7,7)])

Y2_test = np.array([(1,1),(1,0),(1,1)])

對于回歸,請執(zhí)行與對 X_train 和 Y1_train 對相同的操作。


分類部分的示例代碼


from sklearn.neural_network import MLPClassifier

clf = MLPClassifier()

clf.fit(X_train, Y2_train)


查看完整回答
反對 回復(fù) 2023-06-13
?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個贊

訓(xùn)練數(shù)據(jù)的全部意義在于監(jiān)督模型,教它預(yù)測具有一組特征的輸出。因此,將 nan 值作為訓(xùn)練 X, y 的一部分是沒有意義的。模型不會在“填補(bǔ)空白”的同時繼續(xù)學(xué)習(xí)。噸

標(biāo)準(zhǔn)方法是使用缺失值技術(shù),例如 - 按均值/0 估算,使用 KNN 通過檢測包含缺失數(shù)據(jù)的樣本的最近鄰居來替換值,順序數(shù)據(jù)的估算技術(shù)(線性、akima、二次、樣條等)或可以處理丟失數(shù)據(jù)的編碼方法。

如果您不想使用缺失值處理策略,則不應(yīng)將該行保留為訓(xùn)練數(shù)據(jù)集的一部分。

是否有可能用 scikit-learn 或一般的機(jī)器學(xué)習(xí)來解決這樣的問題?

是的,正如我提到的,有一個完整的研究領(lǐng)域來解決這個問題(KNN 是處理這個問題的最流行和最容易獲得的機(jī)器學(xué)習(xí)方法)。本文可能有助于指導(dǎo)您更多。


編輯(基于 OP 編輯)

將 99999999 值替換為 Nan 是正確的方法,因?yàn)槲覀儾恢罏槭裁礃I(yè)務(wù)部門將它們設(shè)置為該值。很可能是丟失了數(shù)據(jù),他們將這些數(shù)據(jù)歸為垃圾值,以便能夠?qū)?shù)據(jù)存儲在數(shù)據(jù)庫中而不會出現(xiàn)太多問題。其次,將它們視為 Nan 值而不是異常值會更明智。因此,出于監(jiān)督培訓(xùn)的目的,我建議刪除具有這些值的行。

另一件事是我注意到這些值是 Y train 和 Y test 的一部分。如果 Nans 僅在 Y 數(shù)據(jù)中,這會使事情變得更容易,因?yàn)槟梢院唵蔚貙⑦@些行保留為數(shù)據(jù)的一部分以進(jìn)行預(yù)測。在非 nan 數(shù)據(jù)上訓(xùn)練模型,并使用該模型預(yù)測行的 Y 值以替換 Nan 值。

但是,如果您認(rèn)為這些是極值并且應(yīng)該被視為異常值,您仍然必須將它們從模型訓(xùn)練中刪除,因?yàn)樗鼈儠偪竦仄蚰P徒Y(jié)果。

最后,如果這是一個分類練習(xí)(不是回歸),那么您實(shí)際上可以將 999999 視為一個單獨(dú)的類,并像其他任何類一樣對其進(jìn)行預(yù)測。這不適用于回歸,因?yàn)樵诨貧w中 999999 是將要進(jìn)行預(yù)測的連續(xù)尺度的一部分。


查看完整回答
反對 回復(fù) 2023-06-13
?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個贊

即使您的模型可以在輸出時生成 NaN,也無法判斷這是錯誤還是實(shí)際估計。我不會在訓(xùn)練集中使用 NaN。

不僅因?yàn)?NaN 不能用任何數(shù)值數(shù)據(jù)類型表示,而且因?yàn)椴豢赡軐?NaN 執(zhí)行算術(shù)運(yùn)算:這意味著您無法計算它的梯度,無法計算與其相交的直線或斜率. 簡而言之,您的模型無法將其學(xué)習(xí)為數(shù)值,因?yàn)樗皇菙?shù)字。


查看完整回答
反對 回復(fù) 2023-06-13
  • 3 回答
  • 0 關(guān)注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號