#python #scikit-learn #neural-network #dimensionality-reduction
#питон #scikit-learn #нейронная сеть #уменьшение размерности #python
Вопрос:
У меня есть набор данных, содержащий величину и фазу из некоторого анализа в качестве ответа, эти ответы (200 ответов) представлены в КОМПЛЕКСНЫХ ЧИСЛАХ
поскольку набор данных содержит большое количество входных параметров (входные параметры одинаковы для всех репозиториев), я хочу использовать метод selectkbest для уменьшения размера, но selectkbest не поддерживает сложные данные, поэтому,
Вопрос 1:
Есть ли какой-либо способ уменьшить размерность аналогично selecktkbest, который может принимать КОМПЛЕКСНЫЕ ЧИСЛА в качестве ответа?
Вопрос 2:
Есть ли возможность выполнить численный регрессионный анализ в нейронной сети с комплексными числами в качестве ответа?
ошибка :
<ipython-input-11-3df44143e2f3> in <module>
2 Y = responses
3 best_features = SelectKBest(score_func=f_regression, k=50)
----> 4 fit = best_features.fit(X,Y)
5 df_scores = pd.DataFrame(fit.scores_)
6 df_columns = pd.DataFrame(X.columns)
~Anaconda3libsite-packagessklearnfeature_selection_univariate_selection.py in fit(self, X, y)
339 self : object
340 """
--> 341 X, y = check_X_y(X, y, ['csr', 'csc'], multi_output=True)
342
343 if not callable(self.score_func):
~Anaconda3libsite-packagessklearnutilsvalidation.py in check_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, warn_on_dtype, estimator)
756 if multi_output:
757 y = check_array(y, 'csr', force_all_finite=True, ensure_2d=False,
--> 758 dtype=None)
759 else:
760 y = column_or_1d(y, warn=True)
~Anaconda3libsite-packagessklearnutilsvalidation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
538 # result is that np.array(..) produces an array of complex dtype
539 # and we need to catch and raise exception for such cases.
--> 540 _ensure_no_complex_data(array)
541
542 if ensure_2d:
~Anaconda3libsite-packagessklearnutilsvalidation.py in _ensure_no_complex_data(array)
345 and hasattr(array.dtype, 'kind') and array.dtype.kind == "c":
346 raise ValueError("Complex data not supportedn"
--> 347 "{}n".format(array))
348
349
ValueError: Complex data not supported
[21. 175.j 98. 198.j 28. 130.j ... 83. 146.j 57. 187.j 95. 191.j]```
Комментарии:
1. Ранее я выполнял классификацию NN по сигналам GNSS, но я изучал фазу и амплитуду отдельно, а не вместе. Я думаю, вам нужно разделить их и выполнить регрессию по каждой переменной отдельно
2. Спасибо за ответ, да, мы можем разделить их и взять отдельно, но здесь они мне нужны как единый ответ (амплитуда и фаза (комплексное число)), что ускоряет мой процесс, поскольку ответов огромное количество.