2 回答

TA貢獻2021條經(jīng)驗 獲得超8個贊
改變:
log_mod1 = sfa.logit("V1~Class",biopsy_data)
至:
log_mod1 = sfa.logit("Class~V1",biopsy_data)
這行得通。

TA貢獻1936條經(jīng)驗 獲得超7個贊
您需要執(zhí)行一些預(yù)處理步驟,它們告訴您必須處于單位間隔內(nèi),因此介于 0 和 1 之間。
您可以做的是通過執(zhí)行以下操作進行特征縮放:X - Xmin/ Xmax - Xmin
在這里它應(yīng)該起作用的修改:
import statsmodels.api as sa
import statsmodels.formula.api as sfa
biopsy = sa.datasets.get_rdataset("biopsy","MASS")
biopsy_data = biopsy.data
biopsy_data.rename(columns={"class":"Class"},inplace=True)
biopsy_data.Class = biopsy_data.Class.map({"benign":0,"malignant":1})
biopsy_data["V1"] = np.divide(biopsy_data["V1"] - biopsy_data["V1"].min(), biopsy_data["V1"].max() - biopsy_data["V1"].min())
log_mod1 = sfa.logit("V1~Class",biopsy_data)
log_res1 = log_mod1.fit()
print(log_res1.summary())
就在調(diào)用之前,sfa.logit()我已經(jīng)對您想要使用的自變量進行了預(yù)處理(V1此處)。
添加回答
舉報