我在 SAS 中使用 PROC fastclus 为每个班级计算一个质心,
proc fastclus data=sample.samples_train mean=knn.clusters
maxc=1 *number of clusters*
maxiter=100;
var &predictors;
by class;
run;
我正在尝试根据创建的这些质心中最接近的一个对测试集进行分类。这我也在 SAS 中使用 PROC discrim。
proc discrim data=knn.clusters
testdata=sample.samples_test
method=NPAR k=1 metric=identity noclassify;
class class;
var &predictors;
ods output ErrorTestClass=knn.error;
run;
我正在使用带有选项的欧几里得距离测量metric=identity
。
返回以下错误。
ERROR: There are not enough observations to evaluate the pooled covariance matrix in DATA= data set or BY group.
如果我将 fastproc 中的集群数设置为 2,则此方法有效。
但是,如何在 SAS 中执行每个类具有单个质心的 1NN?