基于R的Bilibili视频数据建模及分析——聚类分析篇

news2024/11/28 7:31:54

基于R的Bilibili视频数据建模及分析——聚类分析篇

文章目录

  • 基于R的Bilibili视频数据建模及分析——聚类分析篇
    • 0、写在前面
    • 1、数据分析
      • 1.1 聚类分析
      • 1.2 聚类统计
      • 1.3 系统聚类
      • 1.4 Kmeans与主成分分析
    • 2、参考资料


在这里插入图片描述


0、写在前面

实验环境

  • Python版本:Python3.9
  • Pycharm版本:Pycharm2021.1.3
  • R版本:R-4.2.0
  • RStudio版本:RStudio-2021.09.2-382

该实验一共使用4个数据集,但文章讲述只涉及到一个数据集,并且对于每个数据集的分析,数据大小在110条左右

  • 数据来源于和鲸社区

https://www.heywhale.com/mw/dataset/62a45d284619d87b3b2b9147/file

数据字段描述说明

  • title:视频的标题
  • duration:视频时长
  • publisher:视频作者
  • descriptions:视频描述信息
  • pub_time:视频发布时间
  • view:视频播放量
  • comments:视频评论数
  • praise:视频点赞量
  • coins:视频投币数
  • favors:视频收藏数
  • forwarding:视频转发量

1、数据分析

数据分析阶段一共分为三个角度进行分析,分别是变量相关性分析聚类分析建模-因子分析

下文讲述聚类分析阶段

1.1 聚类分析

该阶段分为聚类统计系统聚类以及Kmeans与主成分分析

viewArr = data1[,6]
forwardingArr = data1[,11]
view = c(viewArr)
forwarding = c(forwardingArr)

1.2 聚类统计

  • 欧氏距离
X = cbind(view, forwarding)
dist(X)
dist(X, diag = TRUE)
dist(X, upper = TRUE)

tp

添加主对角线距离

tp

添加上三角距离

tp

  • 马氏距离
dist(X, method = "manhattan")

数据集1的马氏距离如下图所示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.3 系统聚类

针对数据集1,观看量view进行系统聚类

  • 最短距离法:
hc=hclust(dist(data1[,6]),method = "single")
plot(hc)
cbind(hc$merge,hc$height)
cutree(hc,5:1)

tp

在这里插入图片描述

在这里插入图片描述

  • 类平均法:
hc=hclust(dist(data1[,6]),method = "average")
plot(hc)
cbind(hc$merge,hc$height)
cutree(hc,5:1)

tp

  • 中间距离法:
hc=hclust(dist(data1[,6]),method = "median")
plot(hc)
cbind(hc$merge,hc$height)
cutree(hc,5:1)

tp

1.4 Kmeans与主成分分析

针对数据集1,Kmeans是聚类的重要实现之一

  • 使用silhouette方法聚类,查看聚类的数目
library(factoextra)
fviz_nbclust(data1[6:11],kmeans,method = "silhouette") 

tp

得到结果图,以此判断出数据集1使用kmeans方法聚类需要聚多少类

library(cluster)
gap_stat <- clusGap(data1[6:11], FUN = kmeans,K.max = 10)
fviz_gap_stat(gap_stat)

tp

  • 根据上图可知,针对数据集1,一共需要聚8类

代码如下

km=kmeans(data1[6:11], 8)
fviz_cluster(km,data1[6:11])  

tp

  • 查看PCA负载(主成分载荷)

R语言的corrplot包提供了一个在相关矩阵上的可视化探索工具,该工具支持自动变量重新排序,以帮助检测变量之间的隐藏模式。

corrplot 非常易于使用,并在可视化方法、图形布局、颜色、图例、文本标签等方面提供了丰富的绘图选项。它还提供 p 值和置信区间,以帮助用户确定相关性的统计显著性。

plot(as.matrix(data1[6:11]),col=km$cluster+1, pch=10)
points(km$centers,col=3,pch ="*",cex=3)
library(corrplot)  
corpic=corrplot(PCA$loadings)

tp
tp

  • 使用函数fviz_contrib()[factoextra package] 用于绘制变量贡献的条形图
library(factoextra)
contri=fviz_contrib(PCA,choice = "ind",axes = 1:6)
contri   

在这里插入图片描述

  • Kmeans联合主成分分析进行聚类分析

fviz_pca_ind():是factoextra 包中的函数,能够以散点的形式展现数据分析结果。

fviz_pca_ind(PCA, col.ind = "cos2", gradient.cols=c("red","yellow","green")) 

在这里插入图片描述

fviz_cluster提供基于ggplot2的分区方法的优雅可视化。如果ncol(data)>2,则用主成分在图中用点来表示观察结果。每个聚类周围画一个椭圆。

pca.km=kmeans(PCA$scores[,1:6],8)
fviz_cluster(km,data1[6:11])
plot(as.matrix(PCA$scores[,1:6]),col=pca.km$cluster,cex=0.7)   
points(pca.km$centers,col=3,pch ="*",cex=3)
fviz_pca_ind(PCA,habillage = pca.km$cluster,addEllipses = T,repel = T,ellipse.level=0.9)+ggtitle("PCA_KM")

tp

tp

tp

绘制更美观的图

tp

2、参考资料

  • 多元统计分析及R使用(第五版)

结束!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python打包windows服务 开机自启动守护进程

自启动方法一&#xff1a;系统自启动设置python程序开机自启动1、创建一个xxx.bat文件&#xff0c;右键编辑2、在xxx.bat文件里面写入以下内容后保存&#xff1a;&#xff08;可以按照如下流程自己去cmd中测试一下&#xff09;d: #如果需要开机自启动的python程序在c盘&#xf…

Typora插图免费上传云端教程(太香了)

1、前言 我们平时在使用Typora时&#xff0c;文档中的图片一般是保存在本地&#xff0c;很方便&#xff0c;但是有些场景也有问题&#xff0c;比如我全部拷贝到有道云笔记中或者全部拷贝到CSDN中去发布时&#xff0c;你会发现&#xff0c;所有图片都无法预览了&#xff0c;此时…

不要为了“分库分表”而“分库分表”

数据库瓶颈 分库分表 分库分表工具 分库分表带来的问题 什么时候考虑分库分表 数据库瓶颈 不管是IO瓶颈还是CPU瓶颈&#xff0c;最终都会导致数据库的活跃连接数增加&#xff0c;进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务service来看&#xff0c; 就是可用…

解析HTTP请求报文(GET、POST)

目的&#xff1a; 一个WEB服务器需要解析客户端&#xff08;浏览器&#xff09;发来的请求&#xff0c;两种常见的请求方式是GET和POST。 GET的请求格式&#xff1a; GET请求没有请求体只有请求头GET请求的请求参数放在URL后加上一个"?"的后面&#xff0c;参数以…

时序图文献精度——1.2018-KDD-Embedding Temporal Network via Neighborhood Formation

Embedding Temporal Network via Neighborhood Formation Abstract 作者发现&#xff0c;在现有的研究中&#xff0c;以节点间顺序交互事件为特征的网络的完整时间形成过程还很少被建模&#xff0c;在这边文章中&#xff0c;作者引入邻域形成序列的概念来描述节点的演化&…

第四篇 - 对象的深层劫持

一&#xff0c;前言 上篇&#xff0c;主要介绍了在 Vue 的数据初始化流程中&#xff0c;对象属性的单层劫持是如何实现的 回顾一下&#xff0c;主要涉及以下几个核心点&#xff1a; data 为函数和对象的处理&#xff0c;及当 data 为函数时的 this 指向问题Observer 类&…

一文弄清楚vue中的computed和methods

1.实现业务我们现在需要实现一个业务&#xff0c;就是我们有一个输入框&#xff0c;之后我们修改输入框的值&#xff0c;就在此时输入框的值会呈现到页面中的h1标签上去2.利用Vue中的插值语法实现业务2.1什么是插值语法&#xff1f;插值语法就是vue中用来存放预留值得方法&…

【前端】CSS盒子模型

五、盒子模型 1.1盒子模型的介绍 盒子的概念 页面中的每一个标签&#xff0c;都可看做是一个“盒子”&#xff0c;通过盒子的视角方便的进行布局浏览器在渲染&#xff08;显示&#xff09;网页时&#xff0c;会奖网页中的元素看作是一个个的矩形区域&#xff0c;我们也形象地…

<Python的函数(1)>——《Python》

目录 1. 函数 2. 语法格式 2.1 创建函数/定义函数 ​2.2 调用函数/使用函数 3. 函数参数 4. 函数返回值 5. 变量作用域 后记&#xff1a;●由于作者水平有限&#xff0c;文章难免存在谬误之处&#xff0c;敬请读者斧正&#xff0c;俚语成篇&#xff0c;恳望指教&…

Android input 事件分发 -- inputReader

inputReaderinputReaderinputReader 这个章节主要是围绕inputReader 、inputReaderThread进行的&#xff0c;老规矩先上时序图通过前面我们已经知道了InputReader和InputReaderThread都是在InputManager的构造函数里面new出来的&#xff0c;然后InputReaderThread的启动是在Sys…

图文详解:内存总是不够,我靠HBase说服了Leader为新项目保驾护航

最近在工作中用到了 Hbase 这个数据库&#xff0c;也顺便做了关于 Hbase 的知识记录来分享给大家。其实 Hbase的内容体系真的很多很多&#xff0c;这里介绍的是小羽认为在工作中会用到的一些技术点&#xff0c;希望可以帮助到大家。 可以这么说互联网都是建立在形形色色的数据…

剑指offer----C语言版----第十天

目录 1. 二进制中 1 的个数 1.1 题目描述 1.2 可能引起错误的解法 1.3 常规解法 1.4 思路优化 1. 二进制中 1 的个数 原题链接: 剑指 Offer 15. 二进制中1的个数 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/er-jin-zhi-zhong-1de-ge-shu-lcof…

电路方案分析(十五)符合 EMC 标准的汽车制动灯和尾灯设计方案

符合 EMC 标准的汽车制动灯和尾灯设计方案 tips&#xff1a;TI设计方案参考分析&#xff1a;TI Designs&#xff1a;TIDA-01374 1.系统描述 1.1关键参数 2.系统概述 2.1系统框图 2.2关键元器件 3.设计原理 3.1双重亮度设计 3.2 电荷泵设计 3.4 LED故障设计 3.3 MOSFET驱动电…

LeetCode Hot 100 笔记

文章目录链表21. 合并两个有序链表栈20. 有效的括号Java栈链表 链表的题目一般都不太难&#xff0c;画图&#xff0c;别怕麻烦 21. 合并两个有序链表 解法一&#xff1a;迭代 用一个指针cur跟踪当前节点&#xff0c;每次从list1和list2中选取小的节点&#xff0c;链接起来建…

什么是轻量化,轻量化模型is all your need hhh

其实学了几个小月&#xff0c;我们肯定知道&#xff0c;MLP有多deeper &#xff0c;卷积层有多少层呀 抑或是Transformer架构&#xff0c;大量的参数&#xff0c;只能用huge 来描述&#xff0c; 可实际上我们的设备&#xff0c;有时候并没有服务器那么厉害&#xff0c;所以人…

阿里云认证为什么那么多人考?考试内容难不难?

我国人口密集&#xff0c;每年有大量的毕业生涌进社会&#xff0c;除此之外还有很多进入社会很久的打工人&#xff0c;想要跳槽&#xff0c;到更加挣钱的岗位&#xff0c;待遇更好的公司去。为了能够早日买房、买车&#xff0c;很多人会选择社会热门行业去学习&#xff0c;甚至…

sqli-labs 第七关 多命通关攻略

sqli-labs 第七关 多命通关攻略描述字符串与数值之间的转换判断注入类型返回结果正常输入不正常输入错误输入总结判断注入类型判断是否为字符型注入判断是否为单引号字符型注入判断是否为双引号字符型注入判断是否为数值型注入总结判断注入类型&#xff08;修正版&#xff09;字…

二十六、Docker (2)

&#x1f33b;&#x1f33b; 目录一、Docker的常用命令 (阶段A)1.1 帮助命令1.2 镜像命令1.3 容器命令1.3.1 新建容器并启动1.3.2 列出所有运行的容器1.3.3 退出容器1.3.4 删除容器1.3.5 启动和停止容器的操作1.4 常用的其它命令1.4.1 后台启动容器1.4.2 查看日志1.4.3 查看容器…

如何搭建私域流量?

如今已经进入存量用户时代&#xff0c;越来越多的企业也明白了存量用户的重要性&#xff0c;因此企业都非常重视私域流量的搭建&#xff0c;以挖掘客户的价值。 前言 如今已经进入存量用户时代&#xff0c;越来越多的企业也明白了存量用户的重要性&#xff0c;因此企业都非常重…

安卓搭建好的模拟机,为调试准备

​ 这一节直接分享制作好的虚拟机&#xff0c;镜像系统&#xff0c;以及安卓源码&#xff0c;直接节省你的时间去配置&#xff0c;编译。 下来我来分享下搭建步骤&#xff1a; 1 虚拟机下载vm 12 pro &#xff0c;这个网上百度就可以&#xff0c;原则13,14也都是可以的。 2 下…