python - 逻辑回归没有显示正确的结果
问题描述
我正在使用以下数据集,原始版本,来自:https ://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/
我想应用逻辑回归对该数据集上的样本进行分类,我的代码如下:
import numpy as np
from sklearn.model_selection import train_test_split
data = np.genfromtxt("breast-cancer-wisconsin.data",delimiter=",")
X = data[:,1:-1]
X[X == '?'] = '-999999'
X = X.astype(int)
y = data[:, -1].astype(int)
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.2)
lg=linear_model.LogisticRegression(n_jobs = 10)
lg.fit(X_train,y_train)
predictions = lg.predict(X_test)
cm=confusion_matrix(y_test,predictions)
print(cm)
score = lg.score(X_test, y_test)
print("Accuracy: %0.2f (+/- %0.2f)" % (score.mean(), score.std() * 2))
我删除了第一列,因为它只是 ID,并替换了 ? 具有大数字的字符,因此可以将其归类为异常值。我遇到的问题是当我将结果与此页面中获得的结果进行比较时:
https://anujdutt9.github.io/ML_LogRSklearn.html
因为我获得的准确性为:
Accuracy: 0.34
在前面提到的链接上,准确率约为 95%。
我的混淆矩阵的结果也很差,例如,我得到:
[[ 1 92]
[ 0 47]]
我的模型有什么问题?
谢谢
解决方案
尝试这个
X[X == '?'] = np.nan #converting ? to NaN
然后输入平均值
imputer = Imputer()
transformed_X = imputer.fit_transform(X)
推荐阅读
- amazon-web-services - 如何识别导致 AWS lambda 中的限制异常的原因以及如何处理该异常
- java - 为什么一个用户会得到 NoSuchMethodError 而成千上万的用户却没有?
- python-3.x - 如何将 PRAW 干净地集成到我的新 Reddit Bot 中?
- wordpress - 不处于编辑状态时,块预览不可见
- ubuntu - 无法安装程序
- pandas - Dask:将 dask.DataFrame 转换为 xarray.Dataset
- r - 将图像与多面板 ggplot2 对齐
- go - 64位最大值
- dart - Dart 流控制器
- r - 为什么我收到错误:当我从 ggseas 包运行命令 ggsdc 时,“ts”对象必须有一个或多个观察结果?