私はKaggleデータセット:https://www.kaggle.com/c/santander-customer-satisfactionに取り組んでいます。私はPCAの前にある種の機能拡張が必要であることを理解しています。私はthis postとthis postから、正規化が最も良いとは言いましたが、それは私に最高のパフォーマンス(AUC-ROC)を与えた標準化でした。PCAより前に使用するスケーリング方法はどれですか?
RobustScaler()、Normalizer()、MinMaxScaler()、MaxAbsScaler()、StandardScaler()などSklearnのすべての機能拡張方法を試しました。スケーリングされたデータを使用して、私はPCAを行った。しかし、得られたPCAの最適数は、これらの方法の間で大きく異なることが判明した。これらは、私は別のスケーラを使用して得たPCAの異なる数のある
# Standardize the data
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
# Find the optimal number of PCA
pca = PCA(n_components=X_train_scaled.shape[1])
pca.fit(X_train_scaled)
ratios = pca.explained_variance_ratio_
# Plot the explained variance ratios
x = np.arange(X_train_scaled.shape[1])
plt.plot(x, np.cumsum(ratios), '-o')
plt.xlabel("Number of PCA's")
plt.ylabel("Cumulated Sum of Explained Variance")
plt.title("Variance Explained by PCA's")
# Find the optimal number of PCA's
for i in range(np.cumsum(ratios).shape[0]):
if np.cumsum(ratios)[i] >= 0.99:
num_pca = i + 1
print "The optimal number of PCA's is: {}".format(num_pca)
break
else:
continue
:
は、ここで私が使用したコードです。
- RobustScaler:9
- ノーマ:26
- MinMaxScaler:45
- MaxAbsScaler:45
- StandardScaler:142
だから、私の質問は右である方法でありますこのような状況での機能拡張のためのものは何ですか?ありがとう!
これが表示されます。ありがとう@サシャ! –