0

我試圖對兩個類的分類問題執行維數降低。RuntimeWarning:在劃分S中遇到的無效值** 2))[:self._max_components]

我有6個csv文件。我的代碼在這裏:

def linear_discrimination_analysis(files): 
    with open(os.path.join("/Users", "byname", "PycharmProjects", "sensorLogProject", "Data", files[0]), 
      'rU') as my_file_0: 
     df1 = sd.sample_difference(my_file_0) 
    for f in files[1:len(files) - 2]: 
     with open(os.path.join("/Users", "myname", "PycharmProjects", "sensorLogProject", "Data", f), 
        'rU') as my_file_1: 
      df1.append(sd.sample_difference(my_file_1)) 
    with open(os.path.join("/Users", "myname", "PycharmProjects", "sensorLogProject", "Data", files[len(files) - 2]), 
        'rU') as my_file_2: 
     df2 = sd.sample_difference(my_file_2) 
    with open(os.path.join("/Users", "myname", "PycharmProjects", "sensorLogProject", "Data", files[len(files) - 1]), 
        'rU') as my_file_3: 
     df2.append(sd.sample_difference(my_file_3)) 
    X = df1[['x', 'y', 'z']].values 
    y = df2['label'].values 
    lda = LDA(n_components=1) 
    lda.fit_transform(X, y.ravel()) 
    plt.show() 

linear_discrimination_analysis(files) 

我想這可能是問題所在。

這是我得到的錯誤:

每個文件都有行100的5列。我想使用第3,第4和第5列進行特徵提取,這些特徵提取稱爲'x','y'和'z'。

回答

1

該錯誤基本上是指您的y其中有一個bad input shape (464, 3)。對於您發佈的線性判別分析,假設您提供了一個「類」輸出(儘管您可以有多個類),並且您的y應該是一維數組。雖然我不確定你想要做什麼,爲什麼你需要3列y ...

+0

我明白了。那麼y應該是標籤呢? – dirtysocks45

+0

那麼我應該如何設置培訓和測試套件? – dirtysocks45

+0

當我將'y'改爲'y = [1,2]'(我有兩個類標籤)時,我現在得到'ValueError:找到輸入變量的樣本數不一致:[504,2]' – dirtysocks45