Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从BernoulliRBM获得分数_Python_Scikit Learn_Neural Network_Pca_Rbm - Fatal编程技术网

Python 如何从BernoulliRBM获得分数

Python 如何从BernoulliRBM获得分数,python,scikit-learn,neural-network,pca,rbm,Python,Scikit Learn,Neural Network,Pca,Rbm,我正在尝试使用iris数据集: from sklearn import datasets iris = datasets.load_iris() collist = ['SL', 'SW', 'PL', 'PW'] dat = pd.DataFrame(data=iris.data, columns=collist) from sklearn.neural_network import BernoulliRBM model = BernoulliRBM(n_components=2) sco

我正在尝试使用iris数据集:

from sklearn import datasets
iris = datasets.load_iris() 
collist = ['SL', 'SW', 'PL', 'PW']
dat = pd.DataFrame(data=iris.data, columns=collist)

from sklearn.neural_network import BernoulliRBM
model = BernoulliRBM(n_components=2)
scores = model.fit_transform(dat)
print(scores.shape)
print(scores)
但是,对于所有行,我只得到1作为输出:

(150, 2)
[[1. 1.]
 [1. 1.]
 [1. 1.]
 [1. 1.]
 [1. 1.]  # same for all rows
我能像在主成分分析中一样得到与各行分数相似的值吗?否则,我如何从RBM获得一些有用的数字?我尝试了
model.score\u samples(dat)
,但这也为绝大多数行提供了
0
的值

根据:

该模型对输入的分布进行了假设。在 目前,scikit learn仅提供BernoulliRBM,它假定 输入可以是二进制值,也可以是0到1之间的值 编码特定功能打开的概率

由于您的
dat
值都大于1,我猜模型正在将所有输入数据截断为1.0。例如,如果应用规范化:

from sklearn.preprocessing import normalize
scores = model.fit_transform(normalize(dat))
您将获得一些变化的值:

array([[0.23041219, 0.23019722],
   [0.23046652, 0.23025144],
   ...,
   [0.23159369, 0.23137678],
   [0.2316786 , 0.23146158]])

由于您的输入特征必须解释为概率,因此您需要考虑,对于您正在解决的特定问题,任何规范化是否合理。

它是有效的,但无法分离3种虹膜数据集。这意味着什么?我认为它无法分离,因为你的特征,即使是标准化的,也不代表概率。您可以尝试其他规范化策略,但我怀疑此模型(至少在sklearn中实现)不是表示连续特征(长度、宽度等)的好选择。伯努利RBM特别有用的主要情况是什么?当您的特征具有自然的0-1范围缩放时。一些例子是图像分类和文字袋文本模型。