tsne pca 自编码器 绘图(CC2)——一定记得做无量纲化处理使用standardscaler,数据聚类更明显
tsne
数据不做预处理:
# coding: utf-8
import collections
import numpy as np
import os
import pickle
from sklearn.neighbors import NearestNeighbors
import numpy as np
from sklearn.manifold import TSNE
# .......
X = X+black_verify+white_verify+unknown_verify+bd_verify
print black_verify_labels+white_verify_labels+unknown_verify_labels+bd_verify_labels
y = y+black_verify_labels+white_verify_labels+unknown_verify_labels+bd_verify_labels
print("ALL data check:")
print("len of X:", len(X))
print("len of y:", len(y))
# print(unknown_verify) X_embedded = TSNE(n_components=2).fit_transform(X) with open("tsne_data_X.pkl", "wb") as f:
pickle.dump([X_embedded, y], f)
import pickle
from collections import Counter
import numpy as np
import matplotlib.pyplot as Plot def main():
with open("tsne_data_X.pkl", "rb") as f:
[X_embedded, y] = pickle.load(f, encoding='iso-8859-1') print(len(X_embedded))
print(len(y))
print(X_embedded[:3])
print(y[:3])
i = 0
for l in y:
if type(l) == type([]):
raise Exception(str([i,y]))
i+=1
print(Counter(y))
Y, labels = np.array(X_embedded), np.array(y)
titles = ("white","black","black_verify_labels","white_verify_labels","unknown_verify_labels","bd_verify_labels")
colors=['b', 'c', 'y', 'm', 'r', 'g', 'peru']
for i in range(0, 6):
idx_1 = [i1 for i1 in range(len(labels)) if labels[i1]==i]
flg1=Plot.scatter(Y[idx_1,0], Y[idx_1,1], 20,color=colors[i],label=titles[i]);
Plot.legend()
Plot.savefig('tsne.pdf')
Plot.show()
main()
数据做standard标准化处理
使用pca,不进行预处理:
使用standard scaler预处理,再做pca:
from sklearn import preprocessing
scaler = preprocessing.StandardScaler().fit(X)
#scaler = preprocessing.MinMaxScaler().fit(X)
X = scaler.transform(X)
print("standard X sample:", X[:3]) black_verify = scaler.transform(black_verify)
print(black_verify) white_verify = scaler.transform(white_verify)
print(white_verify) unknown_verify = scaler.transform(unknown_verify)
print(unknown_verify) bd_verify = scaler.transform(bd_verify)
print(bd_verify) #print black_verify_labels+white_verify_labels+unknown_verify_labels+bd_verify_labels X = np.concatenate((X,black_verify,white_verify,unknown_verify,bd_verify))
#X = X+black_verify+white_verify+unknown_verify+bd_verify
y = y+black_verify_labels+white_verify_labels+unknown_verify_labels+bd_verify_labels
print("ALL data check:")
print("len of X:", len(X))
print("len of y:", len(y))
# print(unknown_verify) X_embedded = PCA(n_components=2).fit_transform(X) with open("pca_data_X_scaled.pkl", "wb") as f:
pickle.dump([X_embedded, y], f)
最后效果:
最后使用自编码器来来降维:
代码:
X = np.concatenate((X,black_verify,white_verify,unknown_verify,bd_verify))
y = y+black_verify_labels+white_verify_labels+unknown_verify_labels+bd_verify_labels
print("ALL data check:")
print("len of X:", len(X))
print("len of y:", len(y))
# print(unknown_verify) ratio_of_train = 0.8
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=(1 - ratio_of_train))
# Building the encoder
encoder = tflearn.input_data(shape=[None, 75])
encoder = tflearn.fully_connected(encoder, 64)
encoder = tflearn.fully_connected(encoder, 2) # Building the decoder
decoder = tflearn.fully_connected(encoder, 64)
decoder = tflearn.fully_connected(decoder, 75, activation='sigmoid') # Regression, with mean square error
net = tflearn.regression(decoder, optimizer='adam', learning_rate=0.0001,
loss='mean_square', metric=None) # Training the auto encoder
model = tflearn.DNN(net, tensorboard_verbose=0)
model.fit(X_train, X_train, n_epoch=200, validation_set=(X_test, X_test),
run_id="auto_encoder", batch_size=1024) # Encoding X[0] for test
print("\nTest encoding of X[0]:")
# New model, re-using the same session, for weights sharing
encoding_model = tflearn.DNN(encoder, session=model.session)
print(encoding_model.predict([X[0]])) X_embedded = encoding_model.predict(X) #TSNE(n_components=2).fit_transform(X) with open("tflearn_auto_enc_data_X_scaled.pkl", "wb") as f:
pickle.dump([X_embedded, y], f)
如果是迭代次数不一样,则可能有一些差别,见下图,和上面的可能有些差别:
修改64为128:
tsne pca 自编码器 绘图(CC2)——一定记得做无量纲化处理使用standardscaler,数据聚类更明显的更多相关文章
- CAD在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据
在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据.下面帮助的完整例子,在控件安装目录的 Sample\Ie\iedemo.htm 中. 主要用到函数说明: _DMxDrawX::InsertBlo ...
- [Scikit-learn] 4.3 Preprocessing data
数据分析的重难点,就这么来了,欢迎欢迎,热烈欢迎. 4. Dataset transformations 4.3. Preprocessing data 4.3.1. Standardization, ...
- Machine Learning系列--归一化方法总结
一.数据的标准化(normalization)和归一化 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间.在某些比较和评价的指标处理中经常会用到,去除数据的单位限 ...
- 多元统计之因子分析模型及Python分析示例
1. 简介 因子分析是一种研究观测变量变动的共同原因和特殊原因, 从而达到简化变量结构目的的多元统计方法. 因子分析模型是主成分分析的推广, 也是利用降维的思想, 将复杂的原始变量归结为少数几个综合因 ...
- 深度学习之自编码器AutoEncoder
原文地址:https://blog.csdn.net/marsjhao/article/details/73480859 一.什么是自编码器(Autoencoder) 自动编码器是一种数据的压缩算法, ...
- 群体结构图形三剑客——PCA图
重测序便宜了,群体的测序和分析也多了起来.群体结构分析,是重测序最常见的分析内容.群体结构分析应用十分广泛,首先其本身是群体进化关系分析里面最基础的分析内容,其次在进行GWAS分析的时候,本身也需要使 ...
- PRML读书会第十二章 Continuous Latent Variables(PCA,Principal Component Analysis,PPCA,核PCA,Autoencoder,非线性流形)
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:00:49 我今天讲PRML的第十二章,连续隐变量.既然有连续隐变量,一定也有离散隐变量,那么离散隐变量是 ...
- iOS开发--绘图教程
本文是<Programming iOS5>中Drawing一章的翻译,考虑到主题完整性,翻译版本中加入了一些书中未涉及到的内容.希望本文能够对你有所帮助. 本文由海水的味道翻译整理,转载请 ...
- iOS绘图教程 (转,拷贝以记录)
本文是<Programming iOS5>中Drawing一章的翻译,考虑到主题完整性,在翻译过程中我加入了一些书中没有涉及到的内容.希望本文能够对你有所帮助. 转自:http://www ...
随机推荐
- jQuery中删除节点方法remove()、detach()、empty()分析
jQuery中提供了三种删除节点的方法:remove().detach().empty(),本文详细分析这三种方法. 最容易区分的是empty(),该方法严格上属于“清空节点”,即删除其子节点,自身并 ...
- Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083
遇到这种情况大家都找不到头绪,是因为你开始运行了hive的metastore,可以输入jps 然后出现如下: 红线所示就是hive metastore的进程 为了重新启动,需要把这个进杀掉: kill ...
- 在eclipse中构建solr项目+添加core+整合mysql+添加中文分词器
最近在研究solr,这里只记录一下eclipse中构建solr项目,添加core,整合mysql,添加中文分词器的过程. 版本信息:solr版本6.2.0+tomcat8+jdk1.8 推荐阅读:so ...
- 磁盘对齐-windows篇
什么是磁盘分区对齐(Disk Alignment.Partition Alignment): Windows的磁盘有一种结构叫做Master Boot Record(MBR), 它的默认大小为63个B ...
- loadrunner之脚本篇——录制方式HTML-based和URL-based Script
A. HTML-based Script 针对 Web (HTTP/HTML)虚拟用户的缺省录制级别.它指示VuGen录制当前web页面上下文中的HTML action.录制会话期间并不录制所有资 ...
- Linux环境下的图形系统和AMD R600显卡编程(1)——Linux环境下的图形系统简介
转:https://www.cnblogs.com/shoemaker/p/linux_graphics01.html Linux/Unix环境下最早的图形系统是Xorg图形系统,Xorg图形系统通过 ...
- jQuery消息提示框插件Tipso
在线演示 本地下载
- 大话设计模式之PHP篇 - 策略模式
什么是策略模式? 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户而独立变化. 组成:抽象策略角色: 策略类,通常由一个接口或者抽象 ...
- VMware Big Data Extensions 安装步骤
文档地址:https://pubs.vmware.com/bde-2/index.jsp 第一步,部署BigDataExtensions OVF模板,并登陆Console修改默认密码 第二步,在 Se ...
- Gitblit搭建及Git协作开发流程
1. 概述 目前主流的是git作为自己代码管理,但是采用github需要付费才能够使用,如果不付费,代码需要公开.创业团队及小型开发团队都有必要搭建自己的代码服务器,自己摸索需要一定的时间,会赶不及项 ...