0

に要求されたよりも少ない部品を生産、私は次のデータセットに取り組んでいます:LDAは、Python

http://archive.ics.uci.edu/ml/datasets/Bank+Marketing

データはデータフォルダのリンクをクリックすることで見つけることができます。トレーニングセットとテストセットの2つのデータセットが存在します。私が使用しているファイルには、両方のセットの結合データが含まれています。

私は、LDA(Linear Discriminant Analysis)を適用して2つのコンポーネントを取得しようとしていますが、コードを実行すると、1つのコンポーネントしか生成されません。 "n_components = 3"を設定した場合、1つのコンポーネントしか得られません。

PCAのテストが完了しました。「n」が「n」以下変換時にX配列内に存在するフィーチャの数。

なぜLDAが奇妙に動作しているようですか。

#Load libraries 
import pandas 
import matplotlib.pyplot as plt 
from sklearn import model_selection 
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis 

dataset = pandas.read_csv('bank-full.csv',engine="python", delimiter='\;') 

#Output Basic Dataset Info 
print(dataset.shape) 
print(dataset.head(20)) 
print(dataset.describe()) 

# Split-out validation dataset 
X = dataset.iloc[:,[0,5,9,11,12,13,14]] #we are selecting only the "clean data" w/o preprocessing 
Y = dataset.iloc[:,16] 
validation_size = 0.20 
seed = 7 
X_train, X_validation, Y_train, Y_validation = model_selection.train_test_split(X, Y, test_size=validation_size, random_state=seed) 

# Feature Scaling 
from sklearn.preprocessing import StandardScaler 
sc_X = StandardScaler() 
X_train = sc_X.fit_transform(X_train) 
X_temp = X_train 
X_validation = sc_X.transform(X_validation) 

'''# Applying PCA 
from sklearn.decomposition import PCA 
pca = PCA(n_components = 5) 
X_train = pca.fit_transform(X_train) 
X_validation = pca.transform(X_validation) 
explained_variance = pca.explained_variance_ratio_''' 

# Applying LDA 
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA 
lda = LDA(n_components = 2) 
X_train = lda.fit_transform(X_train, Y_train) 
X_validation = lda.transform(X_validation) 

答えて

2

LDA(sklearnで少なくとも実装)(kは、クラスの数である)、ほとんどK-1成分で製造することができる:ここで私のコードです。したがって、バイナリの分類を扱っている場合は、最終的には1次元のみになります。

詳細はマニュアルを参照してください:http://scikit-learn.org/stable/modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.htmlまた関連

Python (scikit learn) lda collapsing to single dimension

LDA ignoring n_components?

関連する問題