我在Stata中执行discrim knn有两个问题。
1)您如何正确编写命令?我尝试了各种版本,但似乎总是收到错误消息,指出指定了太多变量。
discrim knn buy, group(train test) k(1)
2)我对KNN的理解是,因子变量(二进制)对于使用KNN很好,甚至被鼓励使用。但是,我收到错误消息,指出不允许使用因子变量和时间序列运算符。
最后,尽管我知道这不是解决此问题的最佳空间,但是否应针对knn归一化每个 vector ?我听到了相互矛盾的回答。
最佳答案
我猜你得到的错误是
group(): too many variables specified
这是因为您只能使用
knn
对1个变量进行分组。 knn
根据单个分组变量执行判别分析,在您的情况下,将训练与测试区分开。我想象您的train
和test
变量是二进制的,在这种情况下,仅使用其中一个变量就足够了,因为它们只是彼此逻辑上的对立。一个变量具有足够的信息来区分两组。
关于error-handling - 如何在Stata中有效使用knn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11585207/