逻辑回归未显示正确结果

时间:2018-09-08 15:34:57

标签: python scikit-learn

我正在使用以下数据集,原始数据集来自: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]]

我的模型怎么了?

谢谢

1 个答案:

答案 0 :(得分:1)

尝试一下

            MySqlCommand create = new MySqlCommand(@"CREATE TABLE iadatabase.@tableName (
                                                studentid INT NOT NULL AUTO_INCREMENT,
                                                studentname varchar(30) NOT NULL,
                                                absenses INT NULL,
                                                CONSTRAINT table_pk PRIMARY KEY (studentid)
                                                )
                                                ENGINE=InnoDB
                                                DEFAULT CHARSET=utf8
                                                COLLATE=utf8_general_ci
                                                AUTO_INCREMENT=1;
                                                ;", connection);
        create.Parameters.AddWithValue("@tableName", tableName);
        create.ExecuteNonQuery();
        create.Parameters.Clear();

然后估算平均值

X[X == '?'] = np.nan #converting ? to NaN