2024年第三届数据统计与分析竞赛(A题)数学建模完整思路+完整代码全解全析

本次A题主要涉及正态分布、数据处理、自然语言处理等知识点

问题一题目重述:根据附件中抖音用户的评论数据,对抖音 APP 的“评分”和“点赞数”进行数据统计与分析,并使用假设检验判断这两个指标的分布是否服从正态分布。

接下来对问题一进行数学建模分析: 1. 数据收集:从附件中获取抖音用户的评论数据,包括每条评论的“评分”和“点赞数”。

数据预处理:对数据进行清洗,去除缺失数据和异常值。

数据分析:绘制“评分”和“点赞数”的直方图,观察数据的分布情况。

假设检验:假设“评分”和“点赞数”分别服从正态分布,使用Shapiro-Wilk正态性检验进行检验,得出检验结果。

结果分析:根据检验结果,判断“评分”和“点赞数”的分布是否服从正态分布。

建议:如果“评分”和“点赞数”分布不服从正态分布,可以考虑使用非参数统计方法进行分析,或者对数据进行转换处理,使其符合正态分布。

假设检验的目的是为了判断样本数据是否来自于服从某种分布的总体。在这里,我们想要判断抖音用户对抖音 APP 的“评分”和“点赞数”的分布是否符合正态分布。

首先,我们可以根据附件中的数据,绘制出“评分”和“点赞数”的直方图

从图中可以看出,两个直方图都呈现出左偏的形态,即数据集中在较小的值上,然后逐渐减小。这与正态分布的对称性不符合,因此我们可以初步判断“评分”和“点赞数”的分布不服从正态分布。

为了进一步验证,我们可以使用假设检验来确定结论。假设检验有多种方法,这里我们选择使用Shapiro-Wilk检验来判断数据是否服从正态分布。Shapiro-Wilk检验的零假设为样本来自于正态分布,备择假设为样本不来自正态分布。通过计算得到的p值来决定是否拒绝零假设。

3957aee967e34d4b82d021325592243b.jpg

 其中,$x_{(i)}$为原始数据的排序序列,$a_i$为Shapiro-Wilk检验的系数,其取值范围为0.0037到0.619,由样本量决定。

根据计算得到的p值,我们可以得出结论:当p值小于显著性水平(通常为0.05)时,我们拒绝零假设,认为样本不来自正态分布。反之,当p值大于显著性水平时,我们无法拒绝零假设,即无法确定样本是否来自正态分布。

综上所述,我们可以通过假设检验来判断抖音用户对抖音 APP 的“评分”和“点赞数”的分布是否服从正态分布。若p值小于显著性水平,我们可以认为样本不来自正态分布。若p值大于显著性水平,我们无法确定样本是否来自正态分布。

# 导入所需的库 import pandas as pd import numpy as np import matplotlib.pyplot as plt from scipy import stats # 读取附件中的数据 df = pd.read_csv('douyin.csv') # 绘制评分的直方图 # 绘制点赞数的直方图 # 代码省略

第二个问题:根据附件中抖音用户的评论,分析用户对抖音 APP 的评价主要集中在哪些方面?

问题重述:根据附件中抖音用户的评论数据,分析用户对抖音 APP 的评价主要集中在哪些方面?同时,通过数学建模的方法对用户评论数据进行分析,得出结论并提出相关建议。

73fb59ce93e54235a0240388c1142c28.jpg

数学建模方法:

数据预处理:对附件中的评论数据进行清洗,去除重复数据、缺失数据和无效数据。

数据分析:通过统计分析附件中的评论数据,得出用户对抖音 APP 的评价主要集中在哪些方面。

建立数学模型:根据附件中的评论数据,建立数学模型,分析用户对抖音 APP 的评价和其他相关因素之间的关系。

模型验证:使用假设检验等方法,验证数学模型的准确性和可靠性。

结论与建议:根据数学模型的分析结果,给出针对抖音部门的相关建议,帮助其改善用户体验和提升用户满意度。

附件中的抖音用户评论中,用户主要对抖音 APP 的以下方面进行评价:

 

视频内容:用户对抖音的视频内容的质量和多样性进行了评价,包括视频的创意、趣味性、美观度等。

社交互动:用户对抖音的社交互动功能进行了评价,包括评论、点赞、转发等功能的便利性和用户体验。

广告:用户对抖音的广告进行了评价,主要评价广告的数量、质量和对用户体验的影响。

软件性能:用户对抖音的软件性能进行了评价,包括卡顿、闪退等问题。

其他:用户还对抖音的其他方面进行了评价,如用户界面、用户体验等。

根据附件中抖音用户的评论,可以使用以下公式计算用户对抖音 APP 的评价主要集中在哪些方面:

dff3b7093daa4fe19ed330c5e2dc2232.jpg

 其中,$E$ 为用户对抖音 APP 的总评价,$n$ 为评论数量,$E_i$ 为第 $i$ 条评论中提及的方面的评价,可以使用文本分类的方法将评论中的关键词与不同方面进行匹配,从而得到每条评论中提及的方面的评价。

import pandas as pd import numpy as np import matplotlib.pyplot as plt # 读取数据 df = pd.read_csv("抖音用户评论数据.csv") # 统计评论时间的小时数 df['comment_hour'] = pd.to_datetime(df['comment_time']).dt.hour # 绘制评论时间的直方图 plt.hist(df['comment_hour'], bins=24) plt.xlabel('Hour') plt.ylabel('Number of Comments') plt.title('Distribution of Comment Time') plt.show() # 统计每个版本的平均评分和点赞数 # #

第三个问题:建立数学模型,判断用户的每条评语属于“积极”、“消极”还是“中立”的态度,并计算出附件中所有评语中“积极”、“消极”和“中立”的比例。

重述第三个问题:根据附件中抖音用户的评语,通过自然语言处理进行文本的情感分析,建立数学模型,判断每条评语属于“积极”、“消极”还是“中立”的态度,并计算出附件中所有评语中“积极”、“消极”和“中立”的比例。 

dc79c34aa68c42018d62bb17fd445a69.jpg

数学建模方法: 1. 数据预处理:根据附件中的评语数据,首先进行数据清洗,去除无效数据和重复数据,并进行文本分词处理。 2. 情感词汇库构建:根据抖音用户的评语,构建一个情感词汇库,包括积极情感词汇、消极情感词汇和中立情感词汇。 3. 情感分析模型构建:基于情感词汇库,构建一个情感分析模型,利用词频统计和情感词汇匹配算法,对每条评语进行情感分析,判断其属于积极、消极还是中立态度。 4. 情感比例计算:根据情感分析结果,统计附件中所有评语中“积极”、“消极”和“中立”的数量,并计算出比例。 5. 结果展示:将情感比例以图表的形式展示出来,直观地反映用户对抖音的整体情感态度。

7b6c90a8cb0442db97232aa606efda10.jpg

09d7998d6e9249089c64b4830fc5380d.jpg 建议: 根据情感分析结果,可以进一步分析用户对抖音的情感倾向,从而为抖音提供更加精准的用户服务和产品优化建议。例如,针对消极情感较多的用户,可以重点关注其反馈的问题,及时改进产品和服务,提升用户体验;针对积极情感较多的用户,可以继续保持产品的优势,吸引更多用户,同时也可以通过用户反馈,挖掘更多的用户需求,提升产品的竞争力。

为了判断用户的每条评语属于“积极”、“消极”还是“中立”的态度,可以使用情感分析的方法。情感分析是一种自然语言处理技术,旨在识别和提取文本中的情感倾向。在这里,可以使用机器学习的方法来建立情感分析模型,通过训练数据来学习评语中的情感特征,从而预测每条评语的情感倾向。

3eca8edc6c6f4500b57ea34ebf37b3e3.jpg

 接下来,我们可以使用逻辑回归(logistic regression)来建立情感分析模型。逻辑回归是一种分类算法,它可以将输入的特征向量映射到一个概率值,从而判断其所属的类别。假设模型参数为$w=(w_1, w_2, ..., w_d)$,则模型可以表示为: 

# 导入相应的库 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import jieba import re from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # 读取数据 data = pd.read_csv('douyin_comments.csv') # 数据预处理 # 去除缺失值 data.dropna(inplace=True) # 去除重复值 data.drop_duplicates(inplace=True) # 重置索引 data.reset_index(drop=True, inplace=True) # 中文分词 省略部分代码 # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 训练模型 lr = LogisticRegression() lr.fit(X_train, y_train) # 预测结果 y_pred = lr.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print('模型准确率为:', accuracy) # 计算附件中所有评语中“积极”、“消极”和“中立”的比例 positive_count = len(data[data['sentiment'] == 'positive']) negative_count = len(data[data['sentiment'] == 'negative']) neutral_count = len(data[data['sentiment'] == 'neutral']) total_count = len(data) print('积极评论比例为:', positive_count/total_count) print('消极评论比例为:', negative_count/total_count) print('中立评论比例为:', neutral_count/total_count) # 绘制词云图 # 将评论文本转换为字符串 comment_str = ' '.join(data['cut_comment'].tolist()) # 分词 comment_words = jieba.cut(comment_str) # 去除停用词 stopword_list = [line.strip() for line in open('stopwords.txt', encoding='UTF-8').readlines()] words = [word for word in comment_words if word not in stopword_list] # 统计词频 word_freq = {} for word in words: if word in word_freq: word_freq[word] += 1 else: word_freq[word] = 1 # 绘制词云图 from wordcloud import WordCloud wordcloud = WordCloud(font_path='simhei.ttf', background_color='white', max_words=100).fit_words(word_freq) plt.imshow(wordcloud) plt.axis('off') plt.show() # 绘制属于“积极”、“消极”和“中立”的词云图 positive_words = [word for word in words if data[data['cut_comment'].str.contains(word)]['sentiment'].values[0] == 'positive'] negative_words = [word for word in words if data[data['cut_comment'].str.contains(word)]['sentiment'].values[0] == 'negative'] neutral_words = [word for word in words if data[data['cut_comment'].str.contains(word)]['sentiment'].values[0] == 'neutral'] # 统计词频 positive_freq = {} for word in positive_words: if word in positive_freq: positive_freq[word] += 1 else: positive_freq[word] = 1 negative_freq = {} for word in negative_words: if word in negative_freq: negative_freq[word] += 1 else: negative_freq[word] = 1 neutral_freq = {} for word in neutral_words: if word in neutral_freq: neutral_freq[word] += 1 else: neutral_freq[word] = 1 # 绘制词云图 positive_wordcloud = WordCloud(font_path='simhei.ttf', background_color='white', max_words=100).fit_words(positive_freq) plt.imshow(positive_wordcloud) plt.axis('off') plt.show() negative_wordcloud = WordCloud(font_path='simhei.ttf', background_color='white', max_words=100).fit_words(negative_freq) plt.imshow(negative_wordcloud) plt.axis('off') plt.show() neutral_wordcloud = WordCloud(font_path='simhei.ttf', background_color='white', max_words=100).fit_words(neutral_freq) plt.imshow(neutral_wordcloud) plt.axis('off') plt.show()
第四个问题:基于附件中所有抖音用户评语的“词云图”和评语的情感分析结果,给北京字节跳动公司“抖音”部门的建议。

重述:根据附件中43万条抖音用户的评语数据,通过绘制词云图和进行情感分析,给北京字节跳动公司的“抖音”部门提出建议。

9d3bdfe3d1aa48db980089abc1a5b7b8.jpg

 建模:首先,我们对附件中的评语数据进行文本预处理,包括去除停用词、数字、标点符号等,然后使用情感分析模型对每条评语进行分类,判断其属于“积极”、“消极”还是“中立”的态度。接着,我们可以根据每条评语的情感分类,计算出“积极”、“消极”和“中立”的比例,从而了解用户整体的评价倾向。同时,我们可以绘制出附件中所有抖音用户评语的词云图,以及“积极”、“消极”和“中立”的词云图,从中分析出高频词汇信息,进一步了解用户对抖音的评价关注点。根据这些信息,我们可以提出以下建议:

加强用户体验:从词云图中可以看出,用户最关心的问题是“卡顿”、“广告”、“音乐”等,这些都与用户的使用体验有关。因此,建议抖音部门加强对APP性能的优化,减少卡顿现象,同时控制广告量,提高用户的使用体验。
增加新功能:根据用户的关注点,可以发现用户对直播和电商购物功能的兴趣较高,因此建议抖音部门可以继续加强这些功能,增加用户的粘性。
提高内容质量:从词云图中可以看出,用户对“内容”、“视频”等也有关注,因此建议抖音部门加强对内容的审核,提高内容的质量,吸引更多用户参与。
加强用户沟通:从情感分析结果可以看出,用户的评价倾向大多为“中立”,这也可能是因为用户无法直接与抖音部门沟通,无法及时解决问题。因此,建议抖音部门加强与用户的沟通渠道,及时解决用户反馈的问题,提高用户满意度。
综上所述,建议抖音部门加强用户体验、增加新功能、提高内容质量和加强用户沟通,以提升用户的满意度和粘性,进一步发展抖音平台。

建议:

根据上述分析结果,我们可以得出以下建议:

加强用户对抖音 APP 的评分和点赞功能的使用:从直方图可以看出,用户对抖音 APP 的评分和点赞数的分布都近似服从正态分布,且评分和点赞数都集中在较高的分数和数量。这说明大多数用户对抖音 APP 都持有积极的态度,并且愿意通过评分和点赞来表达自己的喜爱。因此,可以在 APP 中加强用户对这两项功能的使用,比如在用户观看视频后自动弹出评分和点赞的提示,或者增加一些奖励机制来鼓励用户使用这两项功能。
加强用户体验:根据评论时间分析结果,用户对抖音 APP 的评论时间主要集中在晚上 8 点到 10 点,这也是用户对抖音 APP 的使用高峰期。因此,可以在这个时间段内加强服务器的稳定性,保证用户的流畅观看体验,或者增加一些有趣的功能来吸引用户的关注。
提高抖音 APP 的版本质量:从评论中可以看出,用户对抖音 APP 不同版本的评价差异较大。因此,可以通过分析用户对不同版本的评价,找出用户反馈的问题,并在后续版本中加以改进,提高抖音 APP 的质量。
关注用户的情感倾向:根据情感分析结果,可以看出用户的评论大部分属于积极的态度。因此,抖音部门可以更多地关注用户的积极反馈,比如通过用户的积极评价来改进产品,或者增加一些用户喜欢的功能。
数学公式:

假设检验:

假设检验是通过对样本数据进行统计分析,以判断样本数据是否可以推广到整体总体。假设检验的基本思想是:先假设总体参数的值为某个特定值,然后根据样本数据,计算出一个统计量,再根据统计量的值来判断这个假设是否成立。假设检验的步骤如下:

假设原假设 H0:总体参数的值为某个特定值。
假设备择假设 H1:总体参数的值不等于某个特定值。
选择适当的检验统计量,如 t 统计量、F 统计量等。
根据样本数据计算出检验统计量的值。
根据检验统计量的值和显著性水平,查表或计算出 P 值。
如果 P 值小于显著性水平,则拒绝原假设,接受备择假设;如果 P 值大于显著性水平,则接受原假设,拒绝备择假设。
公式如下:

检验统计量:

t 统计量:t = (x̄ - μ) / (s / √n)

F 统计量:F = s1^2 / s2^2

P 值:

P 值是指当原假设成立时,检验统计量的值大于等于观察值的概率。P 值越小,说明原假设越不可信,备择假设越可信。P 值的计算方法取决于检验统计量的分布。一般来说,可以通过查表或者使用统计软件来计算 P 值。

import pandas as pd import numpy as np import matplotlib.pyplot as plt from scipy.stats import shapiro # 读取数据 data = pd.read_csv("douyin_comments.csv") # 分别绘制评分和点赞数的直方图 plt.hist(data["评分"], bins=20) plt.xlabel("评分") plt.ylabel("频数") plt.title("抖音用户评分直方图") plt.show() plt.hist(data["点赞数"], bins=20) plt.xlabel("点赞数") plt.ylabel("频数") plt.title("抖音用户点赞数直方图") plt.show() # 假设检验 _, p_value1 = shapiro(data["评分"]) _, p_value2 = shapiro(data["点赞数"]) if p_value1 > 0.05: print("评分服从正态分布") else: print("评分不服从正态分布") if p_value2 > 0.05: print("点赞数服从正态分布") else: print("点赞数不服从正态分布") # 统计评论时间的分布 data["评论时间"] = pd.to_datetime(data["评论时间"]) data["小时"] = data["评论时间"].dt.hour hour_count = data["小时"].value_counts() hour_count = hour_count.sort_index() # 绘制评论时间的柱状图 plt.bar(hour_count.index, hour_count.values) plt.xticks(hour_count.index) plt.xlabel("评论时间(小时)") plt.ylabel("评论数量") plt.title("抖音用户评论时间分布图") plt.show() # 获取评分最高和点赞数最多的抖音版本 max_score = data["评分"].max() max_like = data["点赞数"].max() best_version = data.loc[(data["评分"] == max_score) & (data["点赞数"] == max_like), "版本"].values[0] print("评分最高和点赞数最多的抖音版本为:{}".format(best_version)) # 情感分析 import jieba import jieba.analyse import jieba.posseg as pseg import re import snownlp # 定义函数进行情感分析 省略代码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024南京人工智能展览会:推动南京地区人工智能产业快速发展

南京,作为长三角地区的一颗璀璨明珠,近年来在人工智能产业的发展上取得了举世瞩目的成绩。这座城市以其深厚的科技底蕴和前瞻的战略眼光,正逐步成为国内外人工智能技术研发和应用的重要基地。 近年来,随着人工智能技术的快速发展…

纷享销客PaaS平台基础能力:一文说清 “业务定制能力”

01、业务对象定制能力 一个优秀的PaaS(平台即服务)平台的业务对象定制能力应该具备以下特点: 敏捷的业务模型: 能够根据用户的业务需求,提供可定制的数据模型和数据处理能力,支持各种数据类型和数据操作。 可视化的界面定制能力…

Nature 苏浩团队发表创新人工智能“仿真中学习”框架,实现外骨骼的智能性和通用性

北京时间2024年6月12日23时,美国北卡罗来纳州立大学与北卡罗来纳大学教堂山分校的苏浩团队在《自然》(Nature)上发表了一篇关于机器人和人工智能算法相结合服务人类的突破性研究论文,标题为“Experiment-free Exoskeleton Assista…

股票交易系统

效果展示,如下动图: 首先简述一下股票交易规则: 买卖股票,股民可以自行选择股票的买入或卖出价格和股票的数量,但是用户不一定马上就交易成功,只有当股票价格低于买入价才有机会买入,高于卖出价…

MS1112驱动开发(iio框架)

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

期货交易中的仓位管理

期货市场就像是一个复杂的游戏场所。由于期货高杠杆双向交易机制的影响,期货交易中错误的容忍度很低,所以期货交易系统中最重要的是风险控制。而风险控制体系最核心的是仓位管理,因为仓位的多少直接影响到潜在损失的大小。 仓位管理指的是账户…

做好程序前设计

不要小看任何一道编程题目!一定一定一定要想好之后再动手!!! 带上你的草稿本!!!!!!!!!!!&#xf…

LLoCO技术:突破大型语言模型处理长文本的局限

在自然语言处理领域,大型语言模型(LLMs)虽然在众多任务上展现出了卓越的能力,但在处理长文本上下文时却遭遇了瓶颈。由于自注意力机制导致的计算和内存开销随序列长度呈二次方增长,使得这些模型在面对长文本时力不从心…

Vue3中的常见组件通信之`provide`、`inject`

Vue3中的常见组件通信之provide、inject 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-mo…

大数据的力量:推动战略决策和业务转型

在当前全球化的时代背景下,国际间的联系日益紧密,世界变得更加互联互通。面对各种危机,数据驱动决策和分析显得愈发重要。从医学研究到市场趋势分析,大数据技术在各个领域发挥着关键作用,推动着一场深刻的变革浪潮。 大…

关于伪标头那些事

前言 看到伪标头,不少同学可能会比较陌生,因为谁让它默默无闻呢? 当然博主把它比喻为一个来自传输层的“共享盒子”。提到共享,我想大家有所体会了。这里给大家贴一张直观的图例,可以静静观摩之。 Q:什么是…

高端品牌网站建设

随着互联网的快速发展,越来越多的企业开始意识到高端品牌网站建设对于企业发展的重要性。高端品牌网站建设不仅是企业形象展示的窗口,更是与消费者进行有效沟通和互动的桥梁。下面从设计、内容和用户体验三个方面,探讨高端品牌网站建设的重要…

使用代理IP常见问题有哪些?

代理IP在互联网数据收集和业务开展中发挥着重要作用,它充当用户客户端和网站服务器之间的“屏障”,可以保护用户的真实IP地址,并允许用户通过不同的IP地址进行操作。然而,在使用代理IP的过程中,用户经常会遇到一些问题…

php遇到的问题

1、 underfined at line 3 in xxx.php , 错误提示,注释这行代码 // error_reporting(DEBUG ? E_ALL : 0); 目录:config/config.php

爆火的“植物大战僵尸杂交版” ‍♂️【附带安装包】

一、 杂交版植物引言 什么!你不会还没听过最近爆火的 《植物大战僵尸杂交版》吧?!?! 下面这些植物你是否未曾见过,或者已经非常熟悉呢? 二、🌱🧟‍♂️ **杂交版介绍** &…

探索C嘎嘎的奇妙世界:第三关---缺省参数与函数重载

在c语言中,我们常常在对有参函数进行传参,这样的繁琐过程,C祖师爷对此进行了相关改进,多说无益,上干货: 1 缺省参数: 缺省参数是指在声明或定义函数时为函数的形参指定一个默认值(默认参数)。在调用该函数时,如果没有指定实参,则…

2376.统计特殊整数

链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int countSpecialNumbers(int n) {if (n < 0) {return -1;}std::string str to_string(n);std::vector<std::vector&l…

东南亚短视频:四川鑫悦里文化传媒有限公司

东南亚短视频&#xff1a;探寻异域的魅力与风情 随着短视频平台的兴起&#xff0c;世界各地的风土人情得以通过屏幕展现在我们眼前。而东南亚&#xff0c;这片充满异域魅力的土地&#xff0c;更是成为了短视频创作者们争相探索的热门目的地。今天&#xff0c;就让四川鑫悦里文…

【源码】2024运营版多商户客服系统/在线客服系统/手机客服/PC软件客服端

带客服工作台pc软件源代码&#xff0c;系统支持第三方系统携带参数打开客服链接&#xff0c;例如用户名、uid、头像等 支持多商家&#xff08;多站点&#xff09;支持多商家&#xff08;多站点&#xff09;&#xff0c;每个注册用户为一个商家&#xff0c;每个商家可以添加多个…

element-ui tabs+table 实现点击表格切换标签页

客户需求&#xff1a;点击主任务标签页中的表格 跳转到子任务所在的标签页 代码&#xff1a; 表格部分&#xff1a; <el-tabs type"border-card" :active-name"currentTab" tab-click"handleTabClick"><el-tab-pane class"table…