Здравствуйте, я хотел бы, чтобы уменьшить размер моей матрицы поезда, чтобы затем использовать опорную векторную машину, мой код выглядит следующим образом:Как использовать результат матрицы pca для обучения модели?
from sklearn.decomposition import PCA
Сначала я пытался performin ПША:
pca = PCA(n_components=100)
#pca.fit(train_matrix)
train_matrix = np.concatenate([cities,state_matrix,work_type,company_matrix,seg,ag,rep], axis=1)
Тогда Я назначил его к переменной затем тренировать модель следующим образом:
train_matrix = pca.fit_transform(train_matrix)
from sklearn.ensemble import RandomForestClassifier
from sklearn import preprocessing
X_train, X_test, y_train, y_test = train_test_split(
pca, labels_list, test_size=0.1, random_state=47)
Однако я не уверен, что это неправильно, я получил, так что я хотел бы, чтобы получать вир порт, чтобы преодолеть эту ситуацию:
state shape: (282521, 572)
work type shape: (282521, 164)
train matrix shape (5000, 100)
Traceback (most recent call last):
File "build_model.py", line 61, in <module>
pca, labels_list, test_size=0.1, random_state=47)
File "/usr/local/lib/python3.5/dist-packages/sklearn/cross_validation.py", line 2039, in train_test_split
arrays = indexable(*arrays)
File "/usr/local/lib/python3.5/dist-packages/sklearn/utils/validation.py", line 206, in indexable
check_consistent_length(*result)
File "/usr/local/lib/python3.5/dist-packages/sklearn/utils/validation.py", line 177, in check_consistent_length
lengths = [_num_samples(X) for X in arrays if X is not None]
File "/usr/local/lib/python3.5/dist-packages/sklearn/utils/validation.py", line 177, in <listcomp>
lengths = [_num_samples(X) for X in arrays if X is not None]
File "/usr/local/lib/python3.5/dist-packages/sklearn/utils/validation.py", line 126, in _num_samples
" a valid collection." % x)
TypeError: Singleton array array(PCA(copy=True, iterated_power='auto', n_components=100, random_state=None,
svd_solver='auto', tol=0.0, whiten=False), dtype=object) cannot be considered a valid collection.
спасибо, я, наконец, преодолеть эту ситуацию, это было очень полезно – neo33