【发布时间】:2016-10-09 15:46:18
【问题描述】:
我正在为二进制分类问题构建一个模型,其中我的每个数据点都是 300 维(我正在使用 300 个特征)。我正在使用 sklearn 的 PassiveAggressiveClassifier。该模型的性能非常好。
我希望绘制模型的决策边界。我该怎么做?
为了了解数据,我使用 TSNE 将其绘制为 2D。我分两步减少了数据的维度——从 300 到 50,然后从 50 到 2(这是一个常见的建议)。下面是相同的代码sn-p:
from sklearn.manifold import TSNE
from sklearn.decomposition import TruncatedSVD
X_Train_reduced = TruncatedSVD(n_components=50, random_state=0).fit_transform(X_train)
X_Train_embedded = TSNE(n_components=2, perplexity=40, verbose=2).fit_transform(X_Train_reduced)
#some convert lists of lists to 2 dataframes (df_train_neg, df_train_pos) depending on the label -
#plot the negative points and positive points
scatter(df_train_neg.val1, df_train_neg.val2, marker='o', c='red')
scatter(df_train_pos.val1, df_train_pos.val2, marker='x', c='green')
我得到了一个不错的图表。
有没有办法可以在这个图中添加一个决策边界,代表我的模型在 300 暗空间中的实际决策边界?
【问题讨论】:
-
您使用哪一个进行降维——截断 SVD 或 TSNE?如果您对分类和归约都使用线性方法,那么这很简单。
-
@Chester 我不认为 op 创建 tSNE 只是为了忽略它 ;-)
标签: python plot machine-learning scikit-learn data-science