2

我想将我系统中的每个基于文本的项目表示为向量空间模型中的向量。项的值可以是负数或正数,反映了项在正类或负类中的频率。零值表示中性,例如:

项目 1 (-1,0,-5,4.5,2)

项目 2 (2,6,0,-4,0.5)

我的问题是:

1-如何将我的向量标准化为 [0 到 1] 的范围,其中:

.5 表示归一化前为零

和 .5> 如果是阳性

.5< 如果是负数

我想知道是否有一个数学公式可以做这样的事情。

2-归一化后相似性度量选择会有所不同吗?例如,我可以使用余弦相似度吗?

3-如果我在归一化后进行降维会很困难吗?

提前致谢

4

1 回答 1

2

一种解决方案是使用 MinMaxScaler 缩放 (0, 1) 范围之间的数字,然后将每一行除以行的总和。在使用 sklearn 的 python 中,您可以执行以下操作:

from sklearn.preprocessing import MinMaxScaler, normalize
scaler = MinMaxScaler()
scaled_X = scaler.fit_transform(X)
normalized_X = normalize(scaled_X, norm='l1', axis=1, copy=True)
于 2016-03-02T00:18:39.587 回答