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

时间:2015-01-08 18:59:08

标签: python numpy matrix pandas

我正在分析一组共享许多内在特征的股票,并且还添加了可以扩展原始数据集中的数据点的外部数据集。我有以下数据框,使用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)})

生成以下数据集:

enter image description here

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

1 个答案:

答案 0 :(得分:3)

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

如果您想快速查看功能,我会像这样做一个RadViz:

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

哪个会产生这个: enter image description here

使用您编写的数据集,我可以说,例如,消除D-B段下方的数据点可以减小矩阵的大小,并且仍然可以捕获许多功能。或者,您可能希望关注D-B细分之下的那些值,因为它们代表了您的研究领域中的异常等。

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

希望我的回答有所帮助。