【问题标题】:QDA vs LDA for face recognition on AT&T datasetQDA 与 LDA 在 AT&T 数据集上进行人脸识别
【发布时间】:2019-01-16 01:05:40
【问题描述】:

在使用 lda 和 qda 拟合模型时,我获得了 AT&T 人脸数据库的两个非常不同的准确度。在使用 QDA 之前,我首先搜索理想的正则化参数,AFAIK 是唯一一个用于微调 QDA 的导入参数。

X_load,y_load = datasets.fetch_olivetti_faces(data_home="R:/DATASET/AT&T", return_X_y=True)

我将其分成平衡的训练和测试序列(8 张图像用于训练,2 张用于测试)

lda = LinearDiscriminantAnalysis(solver='svd')
lda.fit(X_train, y_train)
y_pred_lda = lda.predict(X_test)
y_true_lda = y_test
f1_scores_lda.append(met.f1_score(y_true_lda, y_pred_lda, average='micro'))

qda = QuadraticDiscriminantAnalysis()
clf = GridSearchCV(qda, params, cv=4)
clf.fit(X_train, y_train)
reg_params_qda.append(clf.best_params_['reg_param'])

我正在为越来越多的人运行这个实验,所以我用这些参数保存了一个 python 列表

qda2 = QuadraticDiscriminantAnalysis(reg_param=clf.best_params_['reg_param'])
qda2.fit(X_train, y_train)
y_pred_qda = qda2.predict(X_test)
f1_scores_qda.append(met.f1_score(y_true_qda, y_pred_qda, average='micro'))

当我使用整个数据集(40 人)运行它时;

f1_scores_lda 输出 0.975

f1_scores_qda 输出 0.125

为什么 QDA 表现如此糟糕?

【问题讨论】:

  • 多个问题,太宽泛了,不费吹灰之力,除非您重新提出具体问题,否则应该关闭;你不能就应该使用哪个分类器提出建议;实施它然后告诉我们你发现了什么。此外,当您说“希望我考虑特征空间中不同类别的数据的分布”时,如果您给我们一个分布图或一些汇总统计数据,它会有所帮助。此外,您可能会在 [CrossValidated](https:/www.stackoverflow.com) 上发布或阅读更好的答案。
  • 28 questions about LDA+QDA on CrossValidated,建议略读,至少从得票最多的开始。向我们展示一些基本的汇总统计数据或特征空间中不同类的分布图,考虑一些快速而肮脏的变换以使它们更正常,重新运行分类器,告诉我们你得到了什么改进,看看混乱矩阵。基本上,对 QDA 或 LDA 为何按类执行它们的方式有一个直觉。在您进行分类购物之前。
  • 基本上,从回答你自己的 Q1 和 2 开始。在你对这些问题有一个基本的答案之前不要再进一步。
  • 我明天会清理这个,谢谢指点,抱歉不够具体。我将编辑问题并按照您的建议进行操作,感谢您抽出宝贵时间回复!

标签: python numpy scipy scikit-learn


【解决方案1】:

这个问题已经重新表述,我最终在Cross Validated自己回答了这个问题

【讨论】:

    猜你喜欢
    • 2017-07-13
    • 2017-03-11
    • 2018-06-24
    • 2019-01-18
    • 2014-01-10
    • 2020-07-29
    • 2014-06-04
    • 2021-07-27
    • 2014-04-15
    相关资源
    最近更新 更多