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

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

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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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