机器学习之前的基本特征选择或降维

basic feature selection or dimensionality reduction previous to machine learning

我正在分析一组具有许多内在特征的股票,并且还添加了可以扩展原始数据集中的数据点的外部数据集。我有以下数据框,使用 Pandas:

中的虚构示例
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#A = INTEL, #B = IBM, #C = MSFT, #D = AAPL, #E=AIG, #F=GS
df = pd.DataFrame({'A' : ['IBM', 'INTEL', 'MSFT', 'INTEL',
                         'AAPL', 'INTEL', 'MSFT', 'IBM','INTEL','AAPL'],
                    'B' : np.random.randn(10),
                    'C' : np.random.randn(10),
                    'D' : np.random.randn(10),
                    'E' : np.random.randn(10)})

生成以下数据集:

我的真实数据集可能包含 >100 个特征(列)。问题:是否有一种 pythonic 方式来可视化数据集的显着特征,以便我使用简化矩阵?

不太了解您的数据,但假设它是时间序列分析,我会尝试在您拥有的所有特征之间创建一个相关矩阵,并可能合并具有非常高相关性的特征。但是,在使用该方法时,您需要确保相关性随时间保持不变,并检查序列相关性。

如果你想快速可视化这些功能,我会像这样做一个 RadViz:

pd.tools.plotting.radviz(df,"A")

生成这个:

例如,对于您制作的数据集,我可以说,消除 D-B 段下方的数据点可以减小矩阵的大小并仍然捕获很多特征。或者,您可能希望关注 D-B 段下方的那些值,因为它们代表您研究领域等方面的异常情况。

我在官方 Pandas 库中没有找到太多关于 RadViz 的文档,但我发现它有助于快速查看某些数据集的显着特征或作为快速可视化数据挖掘工具。有一篇关于多维数据中聚类识别和 RadViz 算法的好论文 here

希望我的回答对您有所帮助。