import warnings
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#依赖
from sklearn.manifold import TSNE
from sklearn.preprocessing import StandardScaler
sns.set()
warnings.filterwarnings('ignore')
df = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/telecom_churn.csv')
df.head()
X = df.drop(['Churn','State'],axis=1)
#转化为数值
X['International plan'] = X['International plan'].map({'Yes':1,'No':0})
X['Voice mail plan'] = X['Voice mail plan'].map({'Yes':1,'No':0})
#StandardScaler()方法归一化数据
scaler=StandardScaler()
X_scaled = scaler.fit_transform(X)
#构建t-sine
tsne = TSNE(random_state=17)
tsne_repr = tsne.fit_transform(X_scaled)
#绘图
#plt.scatter(tsne_repr[:,0],tsne_repr[:,1],alpha=.5)
#绘图加上色
#plt.scatter(tsne_repr[:,0],tsne_repr[:,1],c=df['Churn'].map({False:'blue',True:'orange'}),alpha=.5)
_, axes = plt.subplots(1, 2, sharey=True, figsize=(12, 5))
for i, name in enumerate(['International plan', 'Voice mail plan']):
axes[i].scatter(tsne_repr[:, 0], tsne_repr[:, 1],
c=df[name].map({'Yes': 'orange', 'No': 'blue'}), alpha=.5)
axes[i].set_title(name)
机器学习——tsne降维处理
最新推荐文章于 2023-06-27 21:08:42 发布