python - 我可以标准化我的 PCA 应用计数向量吗?
问题描述
我已经申请CountVectorizer()
了我的X_train
,它返回了一个稀疏矩阵。
通常如果我们想标准化稀疏矩阵,我们传入with_mean=False
参数。
scaler = StandardScaler(with_mean=False)
X_train = scaler.fit_transform()
但就我而言,在我应用 CountVectorizer 之后,我X_train
还执行了 PCA(TruncatedSVD) 以减小尺寸。现在我的数据不是稀疏矩阵。
那么现在可以StandardScaler()
不通过就直接申请with_mean=False
(i.e with_mean=True)
吗?
解决方案
如果您查看该with_mean
参数的作用,您会发现它只是在缩放之前将您的数据居中。您不将稀疏矩阵居中的原因是,当您尝试将稀疏矩阵居中时,它将转换为密集矩阵并占用更多内存,从而首先破坏其稀疏性。
执行 PCA 后,您的数据已减小维度,现在可以在缩放之前居中。所以是的,你可以StandardScaler()
直接申请。
推荐阅读
- c# - 使用 QuickFIX/n 接收每个报价/价格变动的买入/卖出价格的最佳方式是什么
- android - Android - 方向更改时更改按钮文本大小
- node.js - 错误:参数必须是 Aggregate.append 处的聚合管道运算符
- python - 是否有熊猫功能以设定的时间间隔重复行?
- angular - 已处理字符串中的角度路由器斜线会破坏 url 匹配
- laravel - 从值加入 Laravel 在视图刀片中显示数据
- c# - Smart.Format 版本 2.5.0 升级后出错
- javascript - 如何在使用 chrome 开发工具时保持元素显示在 HTML 中
- sql - 如何在单个记录中输出不同的值
- javascript - 如何使用 color-thief javascript 库指定图像中提取颜色的数量?