【原】R语言中的SOM(自组织映射神经网络)对NBA球员聚类分析

原文链接:http:///?p=19077自组织映射 (SOM)是一种工具,通过生成二维表示来可视化高维数据中的模式,在高维结构中显示有意义的模式(点击文末“阅读原文”获取完整代码数据)。

相关视频

导入通过以下方式使用给定的数据(或数据样本)对SOM进行“训练”:

定义了网格的大小。

网格中的每个单元都在数据空间中分配了一个初始化向量。

例如,如果要创建22维空间的地图,则会为每个网格单元分配一个22维向量。

数据被反复输入到模型中进行训练。每次输入训练向量时,都会执行以下过程:

识别具有最接近训练向量的代表向量的网格单元。

随着训练向量的多次输入,收敛的参数使调整变得越来越小,从而使地图稳定。

相关视频

该算法赋予SOM的关键特征:数据空间中接近的点在SOM中更接近。因此,SOM可能是表示数据中的空间聚类的好工具。

相关视频

Kohonen映射类型下面的示例将使用2015/16 NBA赛季的球员统计数据。我们将查看每36分钟更新一次的球员统计信息。这些数据可从 http://www./获得。我们已经清理了数据。

NBA <- read.csv("NBA_cleaned.csv", sep = ",", header = T, check.names = FALSE)基本SOM在创建SOM之前,我们需要选择要在其中搜索模式的变量。

colnames(NBA)## \[1\] "" "Player" "Pos" "Age" "Tm" "G" "GS" ## \[8\] "MP" "FG" "FGA" "FG%" "3P" "3PA" "3P%" ## \[15\] "2P" "2PA" "2P%" "FT" "FTA" "FT%" "ORB" ## \[22\] "DRB" "TRB" "AST" "STL" "BLK" "TOV" "PF" ## \[29\] "PTS"我们从简单示例开始:

som(scale(NBA\[res1\], grid = somgrid(6, 4, "rectangular")

请注意,我们标准化了训练数据,并定义了网格大小。标准SOM图可为网格单元的代表矢量创建这些饼图表示,其中半径对应于特定维度上的大小。