python可视化界面编程工具,python如何可视化编程

  python可视化界面编程工具,python如何可视化编程

  T-SNE实践——sklearn教程t-SNE是降维与可视化的集成技术。它基于SNE可视化的改进,解决了SNE可视化后样本分布拥挤、边界不清的特点。是目前最好的降维可视化。

  有关t-SNE的历史和原理的详细信息,请参考SNE对t-SNE和拉奇维斯。

  有关代码,请参见下面的示例1。

  TSNE参数功能参数表:

  参数描述了n_components嵌入空间维数perpexity的混沌程度,表明t-SNE优化过程中考虑了相邻点的个数,默认值为30,推荐值为5~50。early _夸张表示值越大,视觉聚类区间越大。learning_rate学习率表示斜率下降的速度,默认值为200。推荐值是10到1000之间的n_iter迭代次数,默认值是1000。250 min _ GGE的默认值是1e-7metric,表示如何测量向量之间的距离。默认值是lmddm的距离。如果是预先计算的,输入x作为计算的距离矩阵。它也可以是自定义的距离测量功能。初始化,默认初始化随机。值为Random时随机初始化,值为pca时pca初始化(常用),值为numpy数组时shape=(n_samples,n _ components)。verbose是否打印优化信息?默认值为0=无信息。打印的信息为random_state随机数种子、整数或RandomState对象方法、barnets_hut、exact的两种优化方法,如相邻点的个数、时间、KL方差、KL方差、误差等。第一个是o(nlogn)需要时间,第二个是o(n^2)需要时间,但是误差很小。此外,在method=barnets_hut的情况下,该参数是有效的,并且用于效率和误差的均衡。默认值为0.5,值越大效率越高,否则误差越大。该值不会在0.2和0.8之间变化。返回对象的属性表:

  Atrtributes是嵌入向量KL _ diversity _ KL diversity n _ ITER _迭代的循环数t分布随机近邻嵌入,因此t-SNE不仅关注局部情况,也关注全局情况,从而忽略全局情况之间的相似性映射,可视化边界不明显,提高了可视化效果。

  目标函数:原始空间和嵌入空间样本分布的KL散度。

  优化算法:梯度下降。

  注意:由于KL散度作为目标函数是非凸的,为了不陷入局部最优解,可能需要多次初始化。

  大叔的缺点:

  计算量大,花费的时间是PCA的100倍,内存消耗大。专攻可视化。这意味着嵌入的空间只有2D或3D。为了防止局部最优解的影响,需要尝试不同的初始化点。优化的t-SNE有很多技巧优化t-SNE。以下五个参数影响t-SNE的可视化效果。

  困惑的困惑。混乱程度越高,SNE霸王龙就越考虑到它的邻居,越注重全局。因此,对于大数据应该使用高混淆度,这也可以帮助t-SNE的请求噪声的影响。相比之下,该参数对可视化效果影响不大。早期夸大因子该值指示所需的聚类间隔大小。如果它太大(大于实际的聚类间隔),所需的函数将不会收敛。相比之下,该参数对可视化效果影响不大,可以默认设置。学习率,学习率。重要参数根据具体问题进行调整。最大迭代次数。重复次数不能太低。推荐1000以上。角度(notusedinexactmethod)角度。相比之下,这个参数对效果影响不大。PS:如何有效使用t-SNE,一个以T-SNE优化技巧为形象的网站。

  示例1 importnumpyasnpimportmatplotlib。pyplotpltfromsclearningimportmanifold,datasets digits=datasets . load _ digits(n)y=digits . data,Digits.targetn_samples,n_features=X.shape " "是原始数据" " n=20#1显示行中的20个数字和列中的20个数字img=np。“(10 * n)) foriinrange (n) 33333

  lt . cm . binary)PLT . x ticks([])PLT . y ticks([])PLT . show()

   t-SNEtsne=流形TSNE(n_components=2,init=pca ,random _ state=501)X _ tsne=tsne。fit _ transform(X)打印(组织数据维为{}。嵌入的数据维度是{}"。格式(X.shape[-1],X_tsne.shape[-1]) 嵌入空间可视化 x_min,x_max=X_tsne.min(0),X_tsne。max(0)X _ norm=(X _ tsne-X _ min)/(X _ max-X _ min)#归一化范围(X_norm.shape[0])中我的PLT。fig size=(8,8)):PLT。text(X_norm[i,0],X_norm[i,1],str(y[i]),color=plt.cm.Set1(y[i]),fontdict={weight: bold , size :9 })PLT。x刻度([])PLT。y刻度([])PLT。显示()

  t-SNE高维数据可视化(python)

  t-SNE(t-distributedstochastic neighbor embedding)是目前最为流行的一种高维数据降维的算法。在大数据的时代,数据不仅越来越大,而且也变得越来越复杂,数据维度的转化也在惊人的增加,例如,一组图像的维度就是该图像的像素个数,其范围从数千到数百万。

  对计算机而言,处理高维数据绝对没问题,但是人类能感知的确只有三个维度,因此很有必要将高维数据可视化的展现出来。那么如何将数据集从一个任意维度的降维到二维或三维呢100 .域嵌入算法就是一种数据降维的算法,其成立的前提是基于这样的假设:尽管现实世界中的许多数据集是嵌入在高维空间中,但是都具有很低的内在维度。也就是说高维数据经过降维后,在低维状态下更能显示出其本质特性。这就是流行学习的基本思想,也称为非线性降维。

  关于域嵌入算法的详细介绍可以参考:https://www。奥雷利。SNE算法的图解介绍

  下面就展示一下如何使用域嵌入算法算法可视化实例库中的手写字体数据集。

  将数组作为NP导入sk学习从sk学习。从sk学习歧管导入tsn。数据集导入load _ digits #随机状态.RS=2015 01 01导入matplotlib。py绘图为pltimport matplotlib。路径效果为pathfeffectsimport matplotlib #我们导入海生的以制作漂亮的绘图。将seaborn导入为SNS SNS。set _ style(暗格)SNS。set _ palette( mutten )SNS。set _ context( notebook ,font_scale=1.5,RC={ lines。线宽:2.5 })位数=load _ digits()#我们首先根据手写数字对数据点进行重新排序,x=NP。v堆栈([数字。数据[数字。target==I]for I in range(10)])y=NP。h栈([位数。目标[位数。target==I]for I in range(10)]digits _ proj=TSNE(random _ state=RS).fit_transform(X)def scatter(x,颜色):#我们用海生的选择一个调色板调色板=NP。数组(SNS。颜色调色板( HLS ,10)) #我们创建一个散点图f=plt.figure(figsize=(8,8))ax=PLT。支线剧情(aspect= equal )sc=ax。scatter(x[:0],x[:1),lw=0,s=40,c=调色板[颜色。astype(NP。int)])PLT。xlim(-25,25) plt.ylim(-25,25)ax。轴(“关”)轴。轴(紧)#我们为每个数字添加标签对于范围(10)中的I,txts=[]:#每个标签的位置. xtext,ytext=np.median(x[colors==i,axis=0) txt=ax.text(xtext,ytext,str(i),font size=24)txt。set _ path _ effects([路径效果.描边(线宽=5,前景=w ),路径效果. normal()])txts。append(txt)return f,ax,sc,txtsscatter(digits_proj,y)PLT。保存fig( digits _ tsne-生成。png ,dpi=120)plt.show()

  可视化结果如下:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: