に要求されたよりも少ない部品を生産、私は次のデータセットに取り組んでいます: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)