scaling - 可以为主成分分析 (pca) 缩放标记/二进制数据吗?
问题描述
我有一个数据集,其中包含大约 20 列标记数据(用 编号sklearn.preprocessing.LabelEncoder
)、140 个二进制列(0 和 1)和 3 列数值。这个数据集中大约有 4400 行,我很难在这个数据集上训练一个深度神经网络,所以我决定减少特征并删除不必要的特征。
所以这就是我所做的:我缩放了这 3 列并进行了 PCA,sklearn.decomposition.PCA()
但结果是 pca1 为 99.7%,pca2 为 0.3%,其他 pca 为 0。
然后出于某种随机原因,我尝试缩放整个数据集:
df = sklearn.preprocessing.scale(df)
并再次尝试 PCA,这一次,结果更有希望(但我猜并不完美)。这是 pcas:
>>> print(np.round(pca.explained_variance_ratio_ * 100, decimals=1))
[2.7 2.1 1.8 1.4 1.3 1.2 1.1 1.1 1. 1. 0.9 0.9 0.9 0.8 0.8 0.8 0.8 0.7
0.7 0.7 0.7 0.7 0.7 0.7 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.5
0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4
0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4
0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4
0.4 0.4 0.4 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3
0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3
0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3
0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.2 0.2
0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2
0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2
0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2
0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
0.1 0.1 0.1 0.1 0.1 0. 0. 0. 0. 0. 0. ]
所以这是我的问题:
是否允许以这种方式扩展数据?(缩放标记/二进制数据)
如果是,这种 PCA 对特征提取有用吗?(因为最好的 pca 是 2.7%)
PS我对这些东西很陌生。如果我需要提供任何其他信息,请告诉我。
解决方案
推荐阅读
- xaml - Xamarin 为选定选项卡形成 Shell 自定义图标
- javascript - JS 文件未在 IE 上加载,可在 Joomla Seblod 中的 Chrome 上运行
- ios - SwiftUI - 如何从单独的类中触发警报
- matlab - 使用黄金分割搜索功能进行弹丸运动优化
- javascript - 使用fabricjs从json到图像
- java - 无法访问 LinkedIn 个人资料响应中的 profilePicture JSON 参数 (Java)
- python - 从列表序列中提取数据以放入变量中
- winapi - 在没有 ecmangen.exe 的情况下创建 Windows 10 自定义日志?
- python - 如何使用按钮输出文本和删除文本
- c++ - 地图
获取地图的其余部分(C++)