南大《探索数据的奥秘》课件示例代码笔记14

简介: 南大《探索数据的奥秘》课件示例代码笔记14

Chp7-4

2019 年 12 月 23 日

In [32]: import numpy as np
import pandas as pd
import random
from scipy import stats
from matplotlib import pyplot as plt
x1=[]
x2=[]
y1=[]
y2=[]
for n in range(40):
x1.append(random.gauss(-1,0.25))
x2.append(random.gauss(-1,0.25))
y1.append(random.gauss(1,0.25))
y2.append(random.gauss(1,0.25))
plt.figure(figsize=(8,6))
plt.plot(x1,y1,'og')
plt.plot(x1,x2,'og')
plt.plot(y1,x1,'og')
plt.plot(y1,y2,'og')
plt.xlim([-2.5,2.5])
plt.ylim([-2.5,2.5])
plt.savefig('cluster')

20210611102102738.png

In [41]: plt.figure(figsize=(8,6))
plt.plot(x1,y1,'og')
plt.plot(x1,x2,'og')
plt.plot(y1,x1,'og')
plt.plot(y1,y2,'og')
plt.xlim([-2.5,2.5])
plt.ylim([-2.5,2.5])
plt.plot(np.mean(x1),np.mean(y1),'*r',markersize=15)
plt.plot(np.mean(x1),np.mean(x2),'*r',markersize=15)
plt.plot(np.mean(y1),np.mean(x1),'*r',markersize=15)
plt.plot(np.mean(y1),np.mean(y2),'*r',markersize=15)
plt.savefig('cluster2')

20210611102253545.png

In [51]: my_data=pd.read_csv('C:\Python\Scripts\my_data\\tmdb_5000_movies.csv')
my_data.describe()
Out[51]: budget id popularity revenue runtime \
count 4.803000e+03 4803.000000 4803.000000 4.803000e+03 4801.000000
mean 2.904504e+07 57165.484281 21.492301 8.226064e+07 106.875859
std 4.072239e+07 88694.614033 31.816650 1.628571e+08 22.611935
min 0.000000e+00 5.000000 0.000000 0.000000e+00 0.000000
25% 7.900000e+05 9014.500000 4.668070 0.000000e+00 94.000000
50% 1.500000e+07 14629.000000 12.921594 1.917000e+07 103.000000
75% 4.000000e+07 58610.500000 28.313505 9.291719e+07 118.000000
max 3.800000e+08 459488.000000 875.581305 2.787965e+09 338.000000
vote_average vote_count
count 4803.000000 4803.000000
mean 6.092172 690.217989
std 1.194612 1234.585891
min 0.000000 0.000000
25% 5.600000 54.000000
50% 6.200000 235.000000
75% 6.800000 737.000000
max 10.000000 13752.000000
In [57]: from sklearn.cluster import KMeans
X=my_data[['budget','popularity','revenue']]
km=KMeans(n_clusters=3,random_state=1)
km.fit(X)
my_cl=pd.DataFrame(data=km.labels_,columns=['cluster'])
X=pd.concat([X,my_cl],axis=1)
X.head(5)
Out[57]: budget popularity revenue cluster
0 237000000 150.437577 2787965087 2
1 300000000 139.082615 961000000 2
2 245000000 107.376788 880674609 2
3 250000000 112.312950 1084939099 2
4 260000000 43.926995 284139100 0
In [58]: X.groupby('cluster').mean()
Out[58]: budget popularity revenue
cluster
0 7.318659e+07 45.302377 2.566544e+08
1 1.721542e+07 14.292629 2.707764e+07
2 1.496765e+08 110.824122 8.091626e+08
In [126]: x=X['budget']
y=X['popularity']
z=X['revenue']
colors=list()
palette={0:"red",1:"green",2:"blue"}
# 字典,给三种类别对应散点图中的三种 marker_color
for n,row in enumerate(X['cluster']): # 根据类别为每个样本设置绘图颜色
colors.append(palette[X['cluster'][n]])#
fig = plt.figure(figsize=(12,10))
ax = fig.gca(projection='3d')
ax.scatter(x,y,z,color=colors)
ax.set_xlim(0,2e8)
ax.set_zlim(0,1e9)
ax.set_xlabel('budget',size=15)
ax.set_ylabel('popularity',size=15)
ax.set_zlabel('revenue',size=15)
fig.savefig('cluster3')

2021061110240452.png

目录
相关文章
耀世升级发布!阿里第三版Java多线程核心技术手册PDF全彩版
本篇将会带着大家去全面剖析多线程编程的核心库、方法、原理,利用案例方式,透彻讲解高并发本质与应对方法!同时这份PDF全部以Demo式案例来讲解技术点的实现,使读者看到代码及 运行结果后就可以知道该项目要解决的是什么问题,类似于网络中博客的风格,让读者用最短的时间学习知识点,明白知识点如何应用,以及在使用时要避免什么,从而快速学习并解决问题!
南大《探索数据的奥秘》课件示例代码笔记05
南大《探索数据的奥秘》课件示例代码笔记05
83 0
南大《探索数据的奥秘》课件示例代码笔记03
南大《探索数据的奥秘》课件示例代码笔记03
65 0
南大《探索数据的奥秘》课件示例代码笔记13
南大《探索数据的奥秘》课件示例代码笔记13
89 0
南大《探索数据的奥秘》课件示例代码笔记01
南大《探索数据的奥秘》课件示例代码笔记01
64 0
南大《探索数据的奥秘》课件示例代码笔记18
南大《探索数据的奥秘》课件示例代码笔记18
68 0
南大《探索数据的奥秘》课件示例代码笔记10
南大《探索数据的奥秘》课件示例代码笔记10
89 0
南大《探索数据的奥秘》课件示例代码笔记12
南大《探索数据的奥秘》课件示例代码笔记12
81 0
南大《探索数据的奥秘》课件示例代码笔记17
南大《探索数据的奥秘》课件示例代码笔记17
62 0
南大《探索数据的奥秘》课件示例代码笔记06
南大《探索数据的奥秘》课件示例代码笔记06
91 0