我正在尝试将sklearn.neural_network.BernoulliRBM与 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_samples(dat)
了,但这也0
为绝大多数行提供了价值。