首页 > 解决方案 > 以复数为响应的降维和数值回归分析

问题描述

我有一个数据集,其中包含来自某些分析的幅度和相位作为响应,这些响应(200 个响应)在 复杂的数字中

由于数据集包含大量输入参数(所有reposnes的输入参数都相同),我想使用selectkbest方法来减少维度,但是selectkbest不支持复杂数据,所以,

问题一:

有没有什么方法可以以类似 selecktkbest 的方式减小维度,可以将COMPLEX NUMBERS作为响应?

问题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)

~\Anaconda3\lib\site-packages\sklearn\feature_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):

~\Anaconda3\lib\site-packages\sklearn\utils\validation.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)

~\Anaconda3\lib\site-packages\sklearn\utils\validation.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:

~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in _ensure_no_complex_data(array)
    345             and hasattr(array.dtype, 'kind') and array.dtype.kind == "c":
    346         raise ValueError("Complex data not supported\n"
--> 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]```

标签: pythonscikit-learnneural-networkdimensionality-reduction

解决方案


推荐阅读