2 回答
TA贡献2021条经验 获得超8个赞
改变:
log_mod1 = sfa.logit("V1~Class",biopsy_data)
至:
log_mod1 = sfa.logit("Class~V1",biopsy_data)
这行得通。
TA贡献1936条经验 获得超6个赞
您需要执行一些预处理步骤,它们告诉您必须处于单位间隔内,因此介于 0 和 1 之间。
您可以做的是通过执行以下操作进行特征缩放:X - Xmin/ Xmax - Xmin
在这里它应该起作用的修改:
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())
就在调用之前,sfa.logit()我已经对您想要使用的自变量进行了预处理(V1此处)。
添加回答
举报