【机器学习】GMM模型

import pandas as pd
data = pd.read_csv ('Fremont.csv', index_col='Date', parse_dates=True)

在这里插入图片描述

%matplotlib inline
data.resample('w').sum().plot();

在这里插入图片描述

import matplotlib.pyplot as plt
data.groupby(data.index.time).mean().plot();
plt.xticks(rotation=45)

在这里插入图片描述

# pivot table
data.columns =['West', 'East']
data ['Total'] =data['West']+data['East']
pivoted = data.pivot_table('Total', index=data.index.time, columns=data.index.date)
pivoted.iloc[:5,:5]

在这里插入图片描述

pivoted.plot(legend=False, alpha =0.01);
plt.xticks(rotation=45)

在这里插入图片描述

X = pivoted.fillna(0).T.values
from  sklearn.decomposition import PCA
X2 = PCA(2).fit_transform(X)
plt.scatter(X2[:,0],X2[:,1])

在这里插入图片描述

from sklearn.mixture import GaussianMixture
gmm =GaussianMixture(2)
gmm.fit(X)
labels = gmm.predict(X)

plt.scatter(X2[:,0],X2[:,1], c=labels, cmap='rainbow') 

在这里插入图片描述

先生成一些数据 ,对比Kmeans和GMM效果

from sklearn.datasets.samples_generator import make_blobs
X, y_true = make_blobs(n_samples=800, centers=4, random_state=11)
plt.scatter(X[:, 0], X[:, 1]);

在这里插入图片描述

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)


plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_

在这里插入图片描述

from sklearn.mixture import GaussianMixture
gmm = GaussianMixture(n_components=4).fit(X)
labels = gmm.predict(X)
plt.scatter(X[:, 0], X[:, 1], c=labels, s=40, cmap='viridis');

在这里插入图片描述

rng = np.random.RandomState(13)
X_stretched = np.dot(X, rng.randn(2, 2))

kmeans = KMeans(n_clusters=4, random_state=1)
kmeans.fit(X_stretched)
y_kmeans = kmeans.predict(X_stretched)
plt.scatter(X_stretched[:, 0], X_stretched[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_

在这里插入图片描述

gmm = GaussianMixture(n_components=4)        
gmm.fit(X_stretched)
y_gmm = gmm.predict(X_stretched)
plt.scatter(X_stretched[:, 0], X_stretched[:, 1], c=y_gmm, s=50, cmap='viridis')

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值