python-3.x - 逻辑回归,混淆矩阵的第二列显示零
问题描述
我想使用逻辑回归来查看银行账户余额、人的年龄和买房能力之间的相关性。实现我的回归模型后,我得到了类型的混淆矩阵:
array([[1006, 0],
[ 125, 0]])
当我尝试对其他数据实施线性回归时就是这种情况。这是代码:
# importing dataset
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]].values
y = dataset.iloc[:, -1].values
# splitting the dataset into the training and test sets
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.25, random_state=42)
# encoding categorial data
label_encoder_y = LabelEncoder()
y = label_encoder_y.fit_transform(y)
# feature scaling
scale = StandardScaler()
X_train = scale.fit_transform(X_train)
X_test = scale.transform(X_test)
# Fitting classifier into the training set
classifier = LogisticRegression(random_state=42)
classifier.fit(X_train, y_train)
# Prediction
y_predicted = classifier.predict(X_test)
# Checking the accuracy
con_matrix = confusion_matrix(y_test, y_predicted)
任何帮助将不胜感激。
解决方案
con_matrix 中的数组如下,tn,fp,fn,tp。
你的真阴性是 1006,这意味着模型认为无法买房的人,而你的假阳性是 0,意味着你的模型没有预测到有人能够买房而不能事实上。
你的假阴性是 125,这意味着这些人实际上他们买得起房子,但你的模型说他们可以。并且您的真实阳性也是 0,这意味着您的模型没有正确地将有能力买房的人预测为真正有能力的人。
我的总体猜测是,与可以买房的人相比,您可能有很多人不能买房,而且特征(银行余额,年龄)可能与两者相似。
我建议您添加 class_weight 参数以防您的数据集不平衡,如果类标签为 0 表示无法买房,则设置 {0: 0.1} 以防您有 90 条无法买房的记录房子和能买房的10条记录
推荐阅读
- html - 属性文件中带有 Thymeleaf -UTF-8 的 Spring Boot CRUD 应用程序
- java - 将依赖于迭代器的方法更改为依赖于 ArrayList 或任何替代 (Java)
- karate - 如何使用空手道中的浏览器缓存在 chrome 中运行测试场景?
- django - Django 搜索向量 - 完全关键字不匹配
- java - 在 Spring 应用程序中发送 zip 文件作为多部分表单请求的一部分
- json - 如何使用 Powershell 从 URL 加载 JSON?
- php - 无效反馈未出现(服务器端)(引导程序 4)
- python - 请求目录的 Python 可执行文件
- python - 在python中按日期时间对文件进行排序
- python - Azure Pipelines - 在 Python 脚本中使用 System.AccessToken