我正在尝试使用Yellowbrick软件包中的t-SNE可视化数据。我得到一个错误。

import pandas as pd
from yellowbrick.text import TSNEVisualizer
from sklearn.datasets import make_classification

## produce random data
X, y = make_classification(n_samples=200, n_features=100,
                       n_informative=20, n_redundant=10,
                       n_classes=3, random_state=42)

## visualize data with t-SNE
tsne = TSNEVisualizer()
tsne.fit(X, y)
tsne.poof()


错误(由fit方法引发):

ValueError: The truth value of an array with more than one element
             is ambiguous. Use a.any() or a.all()

最佳答案

经过对参数的试验:

tsne.fit(X, y.tolist())


这不会引起错误,但是不会产生输出。

最后,用字符串列表代替可以:

y_series = pd.Series(y, dtype="category")
y_series.cat.categories = ["a", "b", "c"]
y_list = y_series.values.tolist()

tsne.fit(X, y_list)
tsne.poof()


该库旨在分析文本数据集,这也许就是为什么y不是字符串必须documented的原因。此外,错误消息没有帮助。

关于python - yellowbrick t-SNE fit引发ValueError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48950135/

10-12 22:24