监督学习分类模型非常不准确

Posted

技术标签:

【中文标题】监督学习分类模型非常不准确【英文标题】:Supervised Learning Classification Model Very Inaccurate 【发布时间】:2016-03-11 11:09:34 【问题描述】:

我的分类模型的准确率非常低。即使我使用邻居 = 1 的 K-Nearest Neighbors 模型,该模型仍然有很多错误。 logreg 模型具有最高的准确度,它只是为每个样本预测 0。我是 ML 的新手,并试图找出我做错了什么。如何改进模型?

输入:

# load the CSV file as a numpy matrix
dataset = np.loadtxt(raw_data, delimiter=",")
target = np.loadtxt(target_data, delimiter=",")
# separate the data from the target attributes
X = dataset[:,0:6]
y = target[:]
print X.shape
print y.shape
#print X
#print y

knn = KNeighborsClassifier(n_neighbors=1)
print knn
knn.fit(X,y)
result = knn.predict(X)
print metrics.accuracy_score(y, result)

knn = KNeighborsClassifier(n_neighbors=5)
print knn
knn.fit(X,y)
result = knn.predict(X)
print metrics.accuracy_score(y, result)

logreg = LogisticRegression()
print logreg
logreg.fit(X, y)
result = logreg.predict(X)
#every prediction is 0
print metrics.accuracy_score(y, result)

输出:

tshelley@tshelley-Ubuntu:~/Dev/Enterprise-Project$ python loadcsv.py
(700, 6)
(700,)
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=1, p=2,
           weights='uniform')
0.674285714286
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=5, p=2,
           weights='uniform')
0.675714285714
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
          verbose=0, warm_start=False)
0.72

【问题讨论】:

【参考方案1】:

我现在可以看到的一个大问题是您在regression 和classification 之间感到困惑。那么你到底想做什么,建立一个分类模型或回归模型,没有样本数据很难确定。

由于您使用的是 scikit-learn,请尝试查看他们的 cheat-sheet 以更接近您正在寻找的内容。

仅供参考,没有 任何 预处理,67% 的分类还不错。

【讨论】:

我认为回归/分类没有任何混淆。这里的逻辑回归用作线性分类器。我同意在没有任何预处理或超参数调整的情况下达到 67% 的准确率确实不错。然而,由于这些模型没有在看不见的数据上进行测试,我会对这些结果持保留态度。 @abudis,我不得不不同意回归/分类。 如果 y 是这些特征的目标类,则单独使用逻辑回归方法将提供不正确的结果。正如 OP 所说 “logreg 模型具有最高的准确度,它只是为每个样本预测 0。”

以上是关于监督学习分类模型非常不准确的主要内容,如果未能解决你的问题,请参考以下文章

无监督和有监督的区别

无监督和有监督算法的区别

监督学习模型分类 生成模型 判别模型 概率模型 非概率模型 参数模型 非参数模型

机器学习基础-监督学习与无监督学习

python_机器学习_监督学习模型_决策树

11.分类与监督学习,朴素贝叶斯分类算法