tsne
- n_components 维数 (default: 2)
- perplexity 邻居个数(default: 30) 2~50
- early_exaggeration (default: 12) 控制原始空间中集群在低维空间中的紧密程度
- learning_rate (default: 200.0) 10~1000;若是学习率过高,数据可能看起来像一个“球”,任何一点与其最近的邻居大体相等。 若是学习率过低,大多数点可能会在密集的云中看起来不多,有不多的异常值。
- n_iter (default: 1000) 迭代次数,至少250
- n_iter_without_progress (default: 300) 在咱们中止以前,最大的可执行次数,250以后开始算
- min_grad_norm (default: 1e-7) 梯度norm小于这个时,中止迭代
- metric (default:euclidean,option:precomputed,correlation)距离的度量方法,必须在scipy.spatial.distance.pdist下,或者是.PAIRWISE_DISTANCE_FUNCTIONS中列出的度量标准,默认为“欧几里德”
- init(default: “random”);‘random’, ‘pca’,PCA初始化不能与预计算的距离一块儿使用,而且一般比随机初始化更全面地稳定。
- verbose (default: 0)
- random_state(default: None)若是int随机种子; 若是没有是the RandomState instance。 请注意,不一样的初始化可能会致使成本函数的不一样局部最小值。
- method(default: ‘barnes_hut’)
- angle (default: 0.5,搭配barnes_hut使用) “角度”是从一个点测量的远距离节点的角度大小(在[3]中称为θ)。 若是这个大小低于’angle’,那么它将被用做其中包含的全部点的汇总节点。 该方法对0.2-0.8范围内的参数变化不太敏感。 角度小于0.2时,计算时间的增长迅速增长,角度越大,偏差越大。
- fit(X[, y]) Fit X into an embedded space.
- fit_transform(X[, y]) Fit X into an embedded space and return that transformed output.
- get_params([deep]) Get parameters for this estimator.
- set_params(**params) Set the parameters of this estimator.
import tensorflow as tf
import math
from sklearn import datasets
from sklearn.manifold import TSNE
import numpy as np
import matplotlib.pyplot as plt
#n_components 维数
#
iris_dataset = datasets.load_iris()
features = []
predict_label=[]
data = open('xx.csv').read().split('\n')
#print data
for i in range(len(data)):
if (i % 1000 == 0):
print i
temp = []
str=data[i].split(',')
if (len(str) == 19):
for j in range(19):
if (j < 16):
temp.append(float(str[j]))
if (j == 18):
predict_label.append(float(str[j]))
features.append(temp)
features_np = np.array(features)
predict_label_np=np.array(predict_label)
model = TSNE(learning_rate=100, n_components=2, random_state=0, perplexity=5)
tsne5 = model.fit_transform(features_np)
model = TSNE(learning_rate=100, n_components=2, random_state=0, perplexity=30)
tsne30 = model.fit_transform(features_np)
model = TSNE(learning_rate=100, n_components=2, random_state=0, perplexity=50)
tsne50 = model.fit_transform(features_np)
#color_mapping = {0: sns.xkcd_rgb['bright purple'], 1: sns.xkcd_rgb['lime'], 2: sns.xkcd_rgb['ochre']}
#colors = list(map(lambda x: color_mapping[x], predict_label_np))
plt.figure(figsize=(30, 15))
plt.subplot(311)
#plt.scatter(tsne5[:, 0], tsne5[:, 1], c=colors)
plt.scatter(tsne5[:, 0], tsne5[:, 1], c=predict_label_np)
plt.title("perplexity=5")
plt.subplot(312)
plt.scatter(tsne30[:, 0], tsne30[:, 1], c=predict_label_np)
plt.title("perplexity=30")
plt.subplot(313)
plt.scatter(tsne50[:, 0], tsne50[:, 1], c=predict_label_np)
plt.title("perplexity=50")
plt.show()
plt.close()
参考文档