1. 程式人生 > >1024xp核工廠caoliu最新地址

1024xp核工廠caoliu最新地址

機器人

技術分享圖片

為了方便顯示數據,我們暫且只使用這幾列數據,其它數據也是可以使用的,維數太多了不方便展示,這裏我們通過每位球員的平均得分和平均助攻數來作為特征衡量一個人進行聚類,意思是根據這個指標將人員進行自動分類,好比平時我們考試得分,班主任總是根據每個人的考試得分將本來就沒幾個人的班分為上等生、中等生、下等生,現在發現老師這麽分等級是帶有很大偏見的,畢竟社會考量一個人不僅僅是根據分數,而是一個人的總和能力。
平均得分(ppg) = 總得分(pts) / 打球場次(g)
平均助攻 = 總助攻(ast) / 助攻失誤數量 (tov)

   以下為手動實現聚類分析的代碼,實現起來還是比較簡單的,第一步是隨機初始化n個質心,然後不斷計算每個樣本點到質心的距離,不斷更新質心位置,如此循環往復,直到質心不再變化為止,即達到了我們的分類效果。

控球控制篩選 後衛人員

point_guards = nba[nba[‘pos‘]==‘PG‘]

每場球賽得分

point_guards[‘ppg‘] = point_guards[‘pts‘] / point_guards[‘g‘]

平均助攻數量

point_guards = point_guards[point_guards[‘tov‘] != 0 ]
point_guards[‘atr‘] = point_guards[‘ast‘] / point_guards[‘tov‘]
散點圖展示如下:
plt.scatter(point_guards[‘ppg‘],point_guards[‘atr‘],c=‘g‘)

plt.title(‘Point Guards‘)
plt.xlabel(‘Points per Game‘,fontsize=15)
plt.ylabel(‘Radio‘,fontsize=15)
plt.show()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
打球平均得分與助攻平均數散點圖如下:

隨機初始化5個質心

num_clusters = 5
random_initial_points = np.random.choice(point_guards.index,size=num_clusters)
centroids = point_guards.loc[random_initial_points]
print centroids

紅色顯示質心

plt.scatter(point_guards[‘ppg‘],point_guards[‘atr‘],c=‘y‘)
plt.scatter(centroids[‘ppg‘],centroids[‘atr‘],c=‘red‘)
plt.title(‘Centroids‘)
plt.xlabel(‘Points per Game‘,fontsize=15)
plt.ylabel(‘Radio‘,fontsize=15)
plt.show()

1024xp核工廠caoliu最新地址