逻辑回归,混淆矩阵的第二列显示为零

我想使用逻辑回归来查看银行账户余额、人的年龄与购买房屋能力之间的相关性。在实现我的回归模型后,我得到了如下类型的混淆矩阵:

array([[1006,    0],   [ 125,    0]])

这是我在尝试对其他数据实施线性回归时的情况。以下是代码:

# 导入数据集dataset = pd.read_csv('/home/stayal0ne/Machine-learning/datasets/bank.csv', sep=';')dataset['age'] = dataset['age'].astype(float)dataset['balance'] = dataset['balance'].astype(float)X = dataset.iloc[:, [0, 5]].valuesy = dataset.iloc[:, -1].values# 将数据集分为训练集和测试集X_train, X_test, y_train, y_test = train_test_split(        X, y, test_size=0.25, random_state=42)# 编码分类数据label_encoder_y = LabelEncoder()y = label_encoder_y.fit_transform(y)# 特征缩放scale = StandardScaler()X_train = scale.fit_transform(X_train)X_test = scale.transform(X_test)# 将分类器拟合到训练集classifier = LogisticRegression(random_state=42)classifier.fit(X_train, y_train)# 预测y_predicted = classifier.predict(X_test)# 检查准确性con_matrix = confusion_matrix(y_test, y_predicted)

任何帮助都将不胜感激。


回答:

con_matrix 数组如下,tn, fp, fn, tp。

你的真负样本有1006个,这意味着模型认为这些人无法买房,而你的假阳性为0,这意味着你的模型没有预测任何人能够买房,而实际上他们不能。

你的假阴性为125,这意味着这些人在现实中能够买得起房,但你的模型却说他们不能。而你的真阳性也是0,这意味着你的模型没有正确预测出那些能够买得起房的人为实际上能买得起的人。

我的总体猜测是,你的数据集中可能有很多无法买房的人与能买房的人相比,可能是由于特征(银行余额、年龄)在两者之间相似所致。

我建议你添加class_weight参数,以防数据集不平衡,如果类标签为0表示无法买房,那么在你有90条无法买房的记录和10条能够买房的记录的情况下,设置{0: 0.1}。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注