簡體   English   中英

如何使用 skLearn 構建基線 model 以預測具有多個值的 Y

[英]How to build Baseline model to predict Y with multiple values using skLearn

我有一個如下所示的示例數據框。 我想建立一個基線 model 來預測y_combined使用X=df.filter(regex='x_')

df = pd.DataFrame({
    'x_1':[0.1,0.2,0.1,0],
    'x_2':[0.5,0.1,0.3,0.4],
    'x_3':[0.2,0.1,0.6,0.1],
    'x_4':[0,0.5,0.2,0.3],
    'y_1': [0, 1, 1, 0],
    'y_2': [0, 0, 1, 0],
    'y_3': [0, 1, 0, 1],
    'y_combined': [np.array([0, 0, 0]), np.array([1, 0, 1]),
                   np.array([1, 1, 0]), np.array([0, 0, 1])]
})

在此處輸入圖像描述

我是基線 model 大樓的新手。 要獲得y_predicted ,我應該如何使用strategy="constant"指定 DummyClassifer() model ? 還是我應該使用不同的策略?

例如,如果y_predicted = [1,1,1] ,那么我將通過獲取y_combinedy_predicted之間的平均質心來查看預測 model 的執行情況。

我將在您想使用DummyClassifier使用strategy='constant'設置為多標簽分類問題構建基線 model 的前提下回答您的問題,其中 output 等於y_combineddf 在這種情況下,以下代碼將起作用:

from sklearn.dummy import DummyClassifier
import numpy as np
import pandas as pd


X = pd.DataFrame({
    'x_1': [0.1,0.2,0.1,0],
    'x_2': [0.5,0.1,0.3,0.4],
    'x_3': [0.2,0.1,0.6,0.1],
    'x_4': [0,0.5,0.2,0.3]
})
y = np.array([[0, 0, 0], [1, 0, 1], [1, 1, 0], [0, 0, 1]])

clf = DummyClassifier(strategy='constant', constant=np.array([1, 1, 1]))
clf.fit(X, y)

請注意,當您使用strategy='constant'時,您還必須 state 應該通過DummyClassifierconstant=...參數預測的常量值。 您將看到基線 model 現在將始終預測指定的常量值,無論輸入如何:

y_pred = clf.predict(X)
print(y_pred)

# output
[[1 1 1]
 [1 1 1]
 [1 1 1]
 [1 1 1]]

由於您還詢問了其他策略,因此您基本上可以選擇DummyClassifier文檔中提到的任何策略。 正如用戶指南中所述,它們都有一個共同的行為:

請注意,對於所有這些策略,predict 方法完全忽略了輸入數據!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM