我的混淆表中出现了一个额外的变量,不确定它来自哪里。 数据集“默认”具有以下列:默认、学生、收入、余额 变量“默认”有两个值:“是”和“否”
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
from ISLP import load_data
from ISLP.models import (ModelSpec as MS,
summarize,
poly)
from ISLP import confusion_table
Default = load_data('Default')
vars = Default.columns.drop(['default'])
y = Default['default'] == 'Yes'
design = MS(vars)
X = design.fit_transform(Default)
glm = sm.GLM(y,
X,
family = sm.families.Binomial())
results = glm.fit()
summarize(results)
probs = results.predict()
labels = np.array(['No']*10000)
labels[probs>0.5] = 'Yes'
confusion_table(labels,Default.default)
在输出中,我得到一个 3x3 表格,其中包含变量“No”、“Yes”和“Ye”
我希望混淆表值仅为“是”和“否”。不知何故,numpy.array“标签”设置为“Ye”而不是“Yes”。
Numpy 可能会推断
labels = np.array(['No']*10000)
的数据类型为 2 个字符,因为数组的所有元素都有两个字符。
尝试
labels = np.array(['No']*10000, dtype='<U3')