import numpy as npimport matplotlibpyplot as pltfrom sklearndatasets import make_blobsfrom sklearndiscriminant_analysis import LinearDiscriminantAnalysisn_train = 20 # samples for trainingn_test = 20
该代码是用来比较使用shrinkage和不使用shrinkage的线性判别分析(Linear Discriminant Analysis)在具有一个有辨别性特征的数据集上的分类准确率。
首先,通过调用make_blobs函数生成具有两个中心的随机数据集,其中一个中心为-2,另一个中心为2。数据集的维度为1,即只有一个特征具有辨别性信息,其他特征仅包含噪声。
然后,通过循环迭代不同的特征数量和重复分类的次数来计算分类准确率。在每次迭代中,使用生成的训练数据训练两个线性判别分析模型:一个使用shrinkage参数设置为'auto',另一个不使用shrinkage(shrinkage参数设置为None)。
接下来,使用生成的测试数据评估训练好的模型的分类准确率,并将准确率的平均值添加到acc_clf1和acc_clf2列表中。
最后,将特征数量和n_train的比率作为x轴,分类准确率作为y轴,绘制两个线性判别分析模型的准确率曲线。
通过观察准确率曲线,可以比较使用shrinkage和不使用shrinkage的线性判别分析模型在具有一个有辨别性特征的数据集上的分类性能。
原文地址: http://www.cveoy.top/t/topic/iYhI 著作权归作者所有。请勿转载和采集!