数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(二)

简介: 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(二)

上接:数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(一)

(六)模型选择与建立——聚类分析,关联规则

       针对抖音用户浏览行为数据,我们可以选择使用各种适应的数据挖掘模型或算法,如关联规则挖掘、聚类分析、分类模型等。根据具体的问题和数据特点,选择合适的模型并进行训练和优化。

(1)聚类分析

       聚类方法是一种将数据对象分组或聚集成具有相似特征的类别或簇的技术。聚类分析是无监督学习的一种常用方法,它不依赖于预先定义的类别标签,而是根据数据对象之间的相似性或距离度量来进行分组。

常见的聚类方法:

       A.K均值聚类:将数据对象划分为K个簇,每个簇代表一个聚类中心,通过最小化数据对象与聚类中心之间的距离来进行优化。

       B.层次聚类:基于不同的聚类合并或分裂策略,通过构建聚类树或聚类层次结构来划分数据对象。

       C.密度聚类:通过密度可达性和密度相连性来识别高密度区域,将数据对象划分为簇。

       D.谱聚类:通过数据对象之间的相似性矩阵或图表示,将数据对象划分为簇。

       E.DBSCAN聚类:通过定义邻域半径和最小密度阈值,将数据对象划分为核心对象、边界对象和噪声对象。

       针对用户和作者的数据特征,使用k-means聚类算法量化的将两个群体进行分类:

       A.导入用于聚类分析的相关库和函数

       B. 确保计算机上已安装Python和pip,并且已经配置好了正确的环境。

       C.使用pd.read_csv()函数读取用户特征、作者特征的CSV文件

       D.基于用户特征数据筛选出满足条件的用户数据,计算满足条件的用户数据占总用户数据的比例

       用户聚类可以服务于平台对用户分级,探索性的分析用户特点,但在数据可视化分析中,可以看到有一部分用户使用程度平台低 ,浏览少,不点赞,对这样的用户进行聚类分析是无效多余的,增加筛选认为至少观看过一个完整短视频且有一定浏览量的用户才具有分析意义。

       E. 基于作者特征数据筛选出满足条件的作者数据,计算满足条件的作者数据

总作者数据的比例

       而在对作者的考量上,聚类的结果是服务于商务合作和广告投放,此时核心是浏览量,而大部分的作者总浏览量非常小,这些作者是无需考虑的,故进行筛选。

       F. 定义K-means聚类算法的函数km

       在函数内部,通过循环遍历K值的范围,

           ①初始化KMeans模型并进行聚类。

           ②预测数据的聚类结果。

           ③计算模型的评估指标,包括轮廓系数和SSE(Sum of Squared Errors)。

           ④保存聚类模型。

           ⑤存储评估指标。

           ⑥打印聚类计算完成的消息。

           ⑦保存评估指标,并返回存储了每个K值对应的轮廓系数和SSE的字典。

       G. 定义绘制聚类效果图的函数draw(sse和sc曲线)

           ①创建一个Line图表对象,并设置图表的初始化选项,包括主题、宽度和高度。

           ②使用.add_xaxis()方法将K值作为X轴数据添加到图表中。

           ③使用.add_yaxis()方法分别将SSE和轮廓系数作为两条线的Y轴数据添加到图表中,并通过yaxis_index参数指定它们在不同的Y轴上。

           ④使用.extend_axis()方法添加一个额外的Y轴。

           ⑤使用.set_global_opts()方法设置图表的全局选项,包括标题、X轴和Y轴的选项。

           ⑥返回创建的图表对象。

       H. 根据给定的用户数据进行聚类

           ①模型训练与保存:根据给定的用户数据进行聚类,并将聚类结果保存在user_score中

           ②聚类k值选择——通过综合肘部法则和sc值,选择作为用户聚类模型

           ③聚类结果

       I. 根据给定的作者数据进行聚类

           ①模型训练与保存:根据给定的作者数据进行聚类,并将聚类结果保存在user_score中

           ②聚类k值选择——通过综合肘部法则和sc值,选择作为用户聚类模型

           ③聚类结果

       聚类的结果解释性较为明显,其核心与浏览量相关,提供了一定数据特征下的量化分类作用。

(2)关联规则

       A.根据 用户特征 的CSV文件使用Apriori算法进行关联规则挖掘并输出关联规则、置信度和支持度。

           ①确保已经安装了pandas和mlxtend库,并且已经将用户特征.CSV文件保存在Jupyter Notebook。

           ②使用pd.read_csv()函数读取作者特征的CSV文件

           ③对数据进行预处理,使用独热编码将数据转换为适用于关联规则挖掘的形式。

       使用Pandas中的applymap()函数对user_df DataFrame进行转换,对每个元素进行操作。该lambda函数的逻辑是,如果元素大于0,则将其赋值为1,否则赋值为0。

           ④使用Apriori算法挖掘频繁项集,设置适当的min_support参数来控制最小支持度的阈值

           ⑤使用循环遍历rules的每一行,并输出满足条件的关联规则、支持度和置信度。

       B. 根据 作者特征的 CSV文件使用Apriori算法进行关联规则挖掘并输出关联规则、置信度和支持度。

       C. 根据 作品特征 的CSV文件使用Apriori算法进行关联规则挖掘并输出关联规则、置信度和支持度。

(七)模型评估与调优——二分类预测(浏览行为中的点赞预测)

  1. 导入必要的python软件包和模块

  2. 数据类型展示

       读取数据,并保留用户特征、作品特征和是否点赞,其余无效字段如channel(不确定),finish(没有浏览行为时不存在), H、date(real_time中包括)。

  1. 数据抽样处理

       为了减少训练成本,对数据集中的数据进行抽样训练通过等距抽样获取部分浏览信息作为训练数据(需要同时保证点赞数据的合理比例)。

  1. 时间数据处理

       训练数据中的real_time字段包括的是字符串对象对应代表时间值,通过将其转化为与固定时间的差值(秒)来进行数值化。

  1. 数据集划分

  2. 模型训练函数

  3. 模型训练

  4. 绘制模型AUC曲线

       综合准确率和AUC值表现,模型的效果不是很好,在数据抽样时扩大抽样规模会有效的提高auc值,同时点赞和不点赞的数据分布较为不均衡也是重要原因这里只做继续方法的演示,相对来说随机森林的效果比较好,所以选择随机森林作为二分类模型。

  1. n_e优化

       原本是一系列机器学习模型的训练和评估过程,包括逻辑回归(Logistic Regression)、朴素贝叶斯(Gaussian Naive Bayes)、单棵决策树(Decision Tree Classifier)和随机森林(Random Forest Classifier)。每个模型都是独立训练和评估的,没有进行参数优化。

       而n_e优化专注于随机森林分类器,并使用网格搜索(GridSearchCV)来寻找最佳的n_estimators参数。这是一个超参数优化的过程,通过尝试不同的n_estimators值来找到在给定数据集上表现最好的随机森林模型。使用了交叉验证(3折)和ROC AUC作为评分标准。

        总结一下,两者的主要区别:

  • 模型选择与优化
  • 原本是对四个不同的模型进行了训练和评估,但没有进行参数优化。
  • n_e优化只关注随机森林模型,并通过网格搜索进行了参数优化。
  • 参数优化
  • 原本使用了默认参数或者手动设置的参数来训练模型。
  • n_e优化使用网格搜索来自动寻找最佳的n_estimators参数。
  • 评估方法
  • 原本使用模型的score方法来评估测试集上的准确率。
  • n_e优化使用交叉验证和ROC AUC评分来评估模型的性能。
  • 计算资源
  • 原本对每个模型单独训练和评估,相对较快。
  • n_e优化使用了网格搜索,这通常需要更多的计算资源和时间,因为它需要训练和评估多个模型。
  1. max_f优化

       原本是一系列机器学习模型的训练和评估过程,包括逻辑回归(Logistic Regression)、朴素贝叶斯(Gaussian Naive Bayes)、单棵决策树(Decision Tree Classifier)和随机森林(Random Forest Classifier)。每个模型都是独立训练和评估的,没有进行参数优化。

       max_f优化专注于随机森林分类器,并使用网格搜索(GridSearchCV)来寻找最佳的max_features参数。这是一个超参数优化的过程,它通过尝试不同的max_features值来找到在给定数据集上表现最好的随机森林模型。这个过程使用了交叉验证(3折)和ROC AUC作为评分标准。

        总结一下,两者的主要区别:

  • 模型选择与优化
  • 原本是对四个不同的模型进行了训练和评估,但没有进行参数优化。
  • max_f优化只关注随机森林模型,并通过网格搜索进行了参数优化。
  • 参数优化
  • 原本使用了默认参数或者手动设置的参数来训练模型。
  • max_f优化使用网格搜索来自动寻找最佳的max_features参数。
  • 评估方法
  • 原本使用模型的score方法来评估测试集上的准确率。
  • max_f优化使用交叉验证和ROC AUC评分来评估模型的性能。
  • 计算资源
  • 原本对每个模型单独训练和评估,相对较快。
  • max_f优化使用了网格搜索,这通常需要更多的计算资源和时间,因为它需要训练和评估多个模型。
  • 并行处理
  • 在两个代码段中,n_jobs=-1都用于指示尽可能使用多的核心进行并行处理,以加速计算过程。
  1. 模型训练

       虽然整体的效果不行,auc值比较低,但是可以看到有优化提升。

       如果我们要比较不同模型的性能,那么原本是合适的。但我们想要找到随机森林模型的最佳参数,那么使用网格搜索是更好的选择。

  1. 模型准确率

       转换一下df中的时间,看看使用2.5%左右的数据训练出来的模型准确率能有多少。

       预测点赞的模型准确率为99.6。

       即使预测不点赞,模型准确率也高达99.3。

(八)结果解释与应用

       该模型结果显示,通过对用户、作者和作品等主体的特征描述和数据分析方法的应用,可以服务于业务优化等目的。如下图所示。

       该模型可以应用于对用户价值进行判定,比如第一类用户的浏览量、点赞、完播率都不怎么高,这类用户更多会关注到视频前半段的内容,兴趣点可通过停留时间进行判断,但使用时间相对较长,反映产品依赖性,一定程度上来说算是核心用户。可以利用停留时间判断喜好,优化推荐算法,重点推荐前半段内容吸引力大的。

       该模型还可以应用于提高作者创作效率,如上图所示。可以看出,高浏览量、高点赞量、高观完量的作者通常都会比其他作者使用更多的配乐,发布的作品更多,去过的城市更多,说明作者需要积累大量的创作经验以及丰富的阅历才能创作出更多脍炙人口的视频。

       这套模型的预测准确率高达99%,说明通过用户特征和作品特征,能够训练一个用于预测用户是否会点赞的二分类模型。在用户对作品的浏览过程中,是否点赞是一个非常重要的指标。通过点赞行为,我们可以判断出用户的喜好,评价作品的质量等。而这套模型可以应用于给自媒体公司提供一个内容优化和广告投放的手段。



目录
相关文章
|
2月前
|
监控 安全 数据可视化
R语言在员工上网行为监控中的数据分析
本文讲述了如何使用R语言分析员工上网行为以提升企业网络安全。通过收集网络流量和访问记录数据,利用R进行读取、分析和可视化,例如查看访问时长分布和热门网站。此外,文中还介绍了一个自动将监控数据提交到网站的R脚本,通过定时任务实现数据的持续更新和管理,及时发现并应对安全风险,增强网络安全性。
260 3
|
3天前
|
数据可视化 数据挖掘 Java
深度挖掘数据,智慧决策,VeryReport报表软件引领数据分析新潮流
深度挖掘数据,智慧决策,VeryReport报表软件引领数据分析新潮流
|
1月前
|
数据采集 数据可视化 数据挖掘
数据挖掘实战:使用Python进行数据分析与可视化
在大数据时代,Python因其强大库支持和易学性成为数据挖掘的首选语言。本文通过一个电商销售数据案例,演示如何使用Python进行数据预处理(如处理缺失值)、分析(如销售额时间趋势)和可视化(如商品类别销售条形图),揭示数据背后的模式。安装`pandas`, `numpy`, `matplotlib`, `seaborn`后,可以按照提供的代码步骤,从读取CSV到数据探索,体验Python在数据分析中的威力。这只是数据科学的入门,更多高级技术等待发掘。【6月更文挑战第14天】
71 11
|
4天前
|
JSON 数据挖掘 API
在会议系统工程中,Python可以用于多种任务,如网络请求(用于视频会议的连接和会议数据的传输)、数据分析(用于分析会议参与者的行为或会议效果)等。
在会议系统工程中,Python可以用于多种任务,如网络请求(用于视频会议的连接和会议数据的传输)、数据分析(用于分析会议参与者的行为或会议效果)等。
|
5天前
|
数据采集 数据挖掘 数据处理
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
【7月更文挑战第14天】Python的Pandas和NumPy库是数据分析的核心工具。Pandas以其高效的数据处理能力,如分组操作和自定义函数应用,简化了数据清洗和转换。NumPy则以其多维数组和广播机制实现快速数值计算。两者协同工作,如在DataFrame与NumPy数组间转换进行预处理,提升了数据分析的效率和精度。掌握这两者的高级功能是提升数据科学技能的关键。**
12 0
|
1月前
|
数据采集 机器学习/深度学习 数据可视化
数据挖掘实战:Python在金融数据分析中的应用案例
Python在金融数据分析中扮演关键角色,用于预测市场趋势和风险管理。本文通过案例展示了使用Python库(如pandas、numpy、matplotlib等)进行数据获取、清洗、分析和建立预测模型,例如计算苹果公司(AAPL)股票的简单移动平均线,以展示基本流程。此示例为更复杂的金融建模奠定了基础。【6月更文挑战第13天】
221 3
|
1月前
|
人工智能 分布式计算 算法
数据挖掘实战随笔更新清单
这是一系列技术博客的摘要,涵盖了多个主题。包括Elasticsearch实战经验、Maxcompute中的Geohash转换和GPS处理、Python环境配置与管理(如Jupyter、Miniforge、Miniconda)、批量接口调用、多进程CSV图片下载、Excel到Markdown转换、Scikit-learn的异常检测(OC-SVM)和模型总结、人工智能领域的图像分类和识别、文本挖掘算法以及数仓相关的行转列处理。所有文章都在持续更新和补充中。
27 2
|
2月前
|
SQL 数据挖掘 HIVE
【Hive SQL 每日一题】在线课程学生行为数据分析
该数据分析师任务是分析在线学习平台的学生行为,以优化课程内容和学习体验。提供的数据包括`students`表(含学生ID、姓名、年龄和性别)和`course_activity`表(含活动ID、学生ID、课程ID、活动日期和学习时长)。分析涉及:1) 学生参加的课程数量,2) 课程总学习时长,3) 按性别分组的平均学习时长,4) 学生首次参加的课程及日期,5) 学生最近一次学习的时长,以及6) 参与学生最多的课程。所有查询都使用了SQL,部分涉及窗口函数和分组统计。数据集可在给定链接下载。