Machine learning SAS中的k最近邻:如何获取每行的邻居列表?

Machine learning SAS中的k最近邻:如何获取每行的邻居列表?,machine-learning,sas,bigdata,nearest-neighbor,knn,Machine Learning,Sas,Bigdata,Nearest Neighbor,Knn,目前,我正在SAS中使用proc discrim对数据集运行kNN分析,但问题可能需要我获取表中每行的前k个邻居列表,因此如何从SAS获取此列表 感谢您的回答,但我正在查找每个数据点的邻居列表,例如,如果我获得了数据集: 姓名年龄zipcode酒精 约翰2608439是的 凯西4947789号 史密斯3790897号 汤姆3488642是的 然后我需要一份清单: 命名邻居1邻居2 约翰·汤姆·凯西 凯西·汤姆·史密斯 史密斯·凯西·汤姆 汤姆·约翰·凯西 我无法从SAS中找到此输出,是否有什么可

目前,我正在SAS中使用proc discrim对数据集运行kNN分析,但问题可能需要我获取表中每行的前k个邻居列表,因此如何从SAS获取此列表


感谢您的回答,但我正在查找每个数据点的邻居列表,例如,如果我获得了数据集: 姓名年龄zipcode酒精 约翰2608439是的 凯西4947789号 史密斯3790897号 汤姆3488642是的

然后我需要一份清单:

命名邻居1邻居2 约翰·汤姆·凯西 凯西·汤姆·史密斯 史密斯·凯西·汤姆 汤姆·约翰·凯西


我无法从SAS中找到此输出,是否有什么可以编程以获取此列表?谢谢大家!

我不是SAS用户,但快速浏览网页似乎可以很好地回答您的问题:

据我所知,你不必自己实施。DISCRIM就足够了

虹膜数据源代码

此处还提供了详细的详细说明:

来自sas社区:

只需使用选项“method=NPAR K=”让PROC DISCRIM使用非参数方法即可。请注意,不要同时使用“R=”选项,该选项对应于基于半径的最近邻法。还要注意PROC DISCRIM如何自动处理分类数据。有时,您可能需要提前将分类数据更改为度量坐标。由于PROC DISCRIM不输出它在内部构建的树,因此使用“data=test=testout=”选项对新数据集进行评分


我不是SAS用户,但快速浏览网页似乎可以很好地回答您的问题:

据我所知,你不必自己实施。DISCRIM就足够了

虹膜数据源代码

此处还提供了详细的详细说明:

来自sas社区:

只需使用选项“method=NPAR K=”让PROC DISCRIM使用非参数方法即可。请注意,不要同时使用“R=”选项,该选项对应于基于半径的最近邻法。还要注意PROC DISCRIM如何自动处理分类数据。有时,您可能需要提前将分类数据更改为度量坐标。由于PROC DISCRIM不输出它在内部构建的树,因此使用“data=test=testout=”选项对新数据集进行评分


感谢您的回答,但我正在查找每个数据点的邻居列表,例如,如果我获得了数据集:此处询问了一个类似的问题:感谢您的回答,但我正在查找每个数据点的邻居列表,例如,如果我获得了数据集:此处询问了一个类似的问题:
ods select none;
proc surveyselect data=iris  out=iris2  
                  samprate=0.5  method=srs  outall;
run;
ods select all;

%let k=5;
proc discrim data=iris2(where=(selected=1))   
             test=iris2(where=(selected=0))
             testout=iris2testout
             method=NPAR k=&k 
             listerr crosslisterr; 
      class Species; 
      var SepalLength SepalWidth PetalLength PetalWidth; 
      title2 'Using KNN on Iris Data'; 
run;