2017-05-15 41 views
0

我正在繪製局部Fisher判別分析ldfa {LFDA}包,我用一個數據幀,顯示如下:錯誤繪製局部Fisher判別分析{LFDA}包

> dim (df) 
[1] 35 415 

model <- lfda(df[, 2:ncol(df)], df[, 1], r = 3, metric="plain") 

我得到這個錯誤:

Error in getAffinityMatrix(distance2, knn, nc) : 
    knn is too large, please try to reduce it. 

KNN處於本地縮放方法(默認值:5)中使用的參數 我已經比所測試的較低值5(4,3,2,1),但我仍然獲得另一個錯誤:

Error in solve.default(tSw) : 
system is computationally singular: reciprocal condition number = 1.90897e-24 

我不知道是什麼問題,我該怎麼辦

回答

1

命令lfda產生了system is computationally singular錯誤消息時解釋變量之一是完全相關的響應變量。
在下面我考慮iris數據集的例子:

X <- iris[,-5] 
y <- iris[,5] 

我生成完全關聯到y的X變量:

X$xnew <- (iris[,5]=="virginica") 

lfda生成錯誤消息:

result <- lfda(X, y, r=3, metric="plain") 

Error in solve.default(tSw) : system is computationally singular: reciprocal condition number = 6.85339e-28

Hope t他可以幫助你找到解決問題的辦法。

+0

不清楚你在哪裏存儲'xnew',你什麼時候用它?最後一行中的「k」在哪裏? – Al14

+0

我假設'k'實際上是'X' – Al14

+1

你是對的,我編輯了我的答案,對不起。 –