机器学习项目——运用机器学习洞察青年消费趋势

news2024/12/31 6:17:25

1. 项目背景

        在21世纪的第三个十年,全球经济和技术的飞速发展正深刻影响着各个领域,尤其是青年消费市场。随着数字化进程的加速,尤其是移动互联网的广泛普及,青年的消费行为和生活方式发生了前所未有的转变。

        然而,面对这一迅速变化的消费行为,如何及时、精准地分析并预测趋势,成为了商家制定市场策略的关键挑战。此时,机器学习技术作为强大的工具,能够帮助我们从海量数据中挖掘出有价值的洞见,提供更加科学的市场预测。

        在这一背景下,本研究旨在利用机器学习技术,对青年文化消费数据进行深入分析。通过对消费数据的预处理、清洗、特征工程等步骤,我们不仅能够从数据中揭示青年消费者的偏好和行为模式,还可以通过构建预测模型,准确预估未来的消费趋势。我们相信,这些研究成果将为企业制定更具针对性的营销策略、抢占市场先机提供强有力的支持。

2. 数据集介绍

        研究的数据来源于Kaggle,一个著名的数据科学竞赛平台,提供了丰富的数据集供研究和分析使用。各变量含义如下:

Customer ID:每个数据项都有一个唯一的顾客ID。
Age:显示每位顾客的年龄。
Gender:如Male(男性)或Female(女性),展示了顾客的性别。
Item Purchased:记录了每位顾客购买的商品类别,如Blouse(女衬衫)、Sweater(毛衣)等。
Category:如Clothing(服装),标识了商品所属的大类。
Purchase Amount (USD):显示了每笔交易的购买金额(单位为美元)。
Location:如Kentucky、Maine等,展示了每位顾客的地理位置。
Size:记录了商品的尺码,如S(小号)、L(大号)。
Color:如Gray(灰色)、Maroon(栗色)等,展示了顾客所选商品的颜色偏好。
Season:如Winter(冬季)、Spring(春季)等,表明商品的季节性。
Review Rating:顾客对商品的评分(如3.1)。
Subscription Status:显示顾客是否订阅了我们的服务(如Yes表示已订阅)。
Shipping Type:如Express(快速配送)、Free Shipping(免费配送),展示了顾客选择的配送方式。
Discount Applied:显示顾客是否享受了折扣(如Yes表示有折扣)。
Promo Code Used:记录了顾客是否使用了促销码(如Yes表示使用了促销码),帮助我们评估促销活动的效果。
Previous Purchases:如14、2等,展示了顾客的历史购买次数。
Payment Method:如Venmo、Cash、Credit Card,展示了顾客使用的支付方式。
Frequency of Purchases:如Fortnightly(每两周一次)、Weekly(每周一次),展示了顾客的购物频率,帮助我们预测未来的购买行为。

3. 技术工具

Python版本:3.9

代码编辑器:pycharm

4. 导入数据

        数据准备和预处理是数据分析项目中至关重要的步骤,它直接影响到分析结果的质量和准确性。首先通过Pandas等库对数据进行初步的导入和清洗。以下是一个详细的步骤解析,结合上述代码,解释如何进行数据准备和预处理。

数据筛选

import pandas as pd
import numpy as np
data = pd.read_csv(r"E:shopping_trends.csv")
filtered_data = data[(data['Age'] >= 15) & (data['Age'] <= 35)]

数据清洗

filtered_data['Gender'] = filtered_data['Gender'].map({'Male': 0, 'Female': 1})

filtered_data.drop(['Location','Item Purchased'], axis=1, inplace=True)
for column in filtered_data.columns:
    if pd.api.types.is_numeric_dtype(filtered_data[column]):
        filtered_data[column].fillna(filtered_data[column].mean(), inplace=True)
    else:
        filtered_data[column].fillna(filtered_data[column].mode()[0], inplace=True)
integer_columns = ['Review Rating', 'Previous Purchases']
filtered_data[integer_columns] = filtered_data[integer_columns].astype(int)

数据导出

filtered_data.to_csv(r"E:\\processed_shopping_trends.csv", index=False)

5. 数据可视化

        在对青年消费行为的深入分析中,通过性别分布、支付方式偏好、不同类别的平均购买金额、季节性消费行为,以及购买频率分布五个维度进行了全面的探讨。结果揭示了青年在文化消费上的多样化趋势和细微差异。

        性别分布的可视化分析可以清晰发现青年在不同性别中的文化消费行为差异。这一分析帮助揭示男女在文化消费上的偏好、消费能力以及参与程度的不同。

plt.figure(figsize=(8, 4))
sns.countplot(x='Gender', data=df)
plt.title('Gender Distribution')
plt.xlabel('Gender (0: Male, 1: Female)')
plt.ylabel('Count')
plt.xticks(rotation=45)  
plt.tight_layout()
plt.show()

        季节性消费行为的可视化分析帮助理解青年在不同季节的消费偏好变化。这种变化不仅受天气、假期安排的影响,也与特定季节文化活动的举办紧密相关。

plt.figure(figsize=(8, 5))
sns.countplot(x='Season', data=df)
plt.title('Seasonal Purchase Behavior')
plt.xlabel('Season')
plt.ylabel('Number of Purchases')
plt.show()

        购买频率的分析可以体现出青年的消费欲望,有些青年会根据自己的心情来进行消费,也是从侧面反映出他们的情绪。

plt.figure(figsize=(12, 6))
sns.countplot(x='Frequency of Purchases', data=df)
plt.title('Frequency of Purchases Distribution')
plt.xlabel('Frequency of Purchases')
plt.xticks(rotation=25)
plt.ylabel('Count')
plt.show()

6.机器模型

        在分析和预测青年的文化消费行为时,特征选择和模型训练策略显得尤为重要。首先,在数据预处理阶段,将所有分类变量转换为数值型,以确保数据集的整洁性和可用性。

        在特征选择的过程中,采用随机森林回归模型来评估不同特征对目标变量(例如购买金额)的贡献度。随机森林是一种集成学习技术,通过组合多个决策树的预测结果来增强模型的整体稳定性和准确度。

导入数据与初步处理

data = pd.read_csv("E:\\processed_shopping_trends.csv")
df = pd.DataFrame(data)
df_encoded = pd.get_dummies(df, columns=['Color', 'Frequency of Purchases', 'Payment Method','Shipping Type','Size','Category','Season','Gender'], drop_first=True)

特征选择

features = ["Previous Purchases", "Age",'Review Rating'] + [col for col in df_encoded.columns if col.startswith(('Color_', 'Frequency_', 'Payment_','Shipping Type','Size','Category','Season','Gender'))]
X = df_encoded[features]
y = df_encoded['Purchase Amount (USD)']

划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

随机森林模型训练

rf = RandomForestRegressor(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)

模型预测与评估

y_pred = rf.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
rmse = sqrt(mse)
r2 = r2_score(y_test, y_pred)
print(f"均方误差(MSE): {mse}")
print(f"均方根误差(RMSE): {rmse}")
print(f"R^2分数: {r2}")

预测新客户的购买金额

data = {
    'Previous Purchases': [5, 15, 8],
    'Age': [25, 35, 29],
    'Review Rating': [4.5, 3.5, 4.0],
    'Color_Blue': [1, 0, 0],
    'Color_Black': [0, 1, 0],
    'Color_Gray': [0, 0, 1],
    'Shipping Type_Standard': [1, 0, 0],
    'Shipping Type_Express': [0, 1, 0],
    'Shipping Type_Free Shipping': [0, 0, 1],
    'Category_Clothing': [1, 0, 0],
    'Category_Outerwear': [0, 1, 0],
    'Category_Footwear': [0, 0, 1],
    'Season_Spring': [1, 0, 0],
    'Season_Winter': [0, 1, 0],
    'Season_Summer': [0, 0, 1],
    'Gender_1': [1, 0, 1]
}
customer_df = pd.DataFrame(data)

确保所有特征列都完整

all_possible_features = [
    'Previous Purchases', 'Age', 'Review Rating',
    'Color_Black', 'Color_Blue', 'Color_Brown', 'Color_Charcoal', 'Color_Cyan', 'Color_Gold',
    'Color_Gray', 'Color_Green', 'Color_Indigo', 'Color_Lavender', 'Color_Magenta', 'Color_Maroon',
    'Color_Olive', 'Color_Orange', 'Color_Peach', 'Color_Pink', 'Color_Purple', 'Color_Red',
    'Color_Silver', 'Color_Teal', 'Color_Turquoise', 'Color_Violet', 'Color_White', 'Color_Yellow',
    'Shipping Type_Express', 'Shipping Type_Free Shipping', 'Shipping Type_Next Day Air',
    'Shipping Type_Standard', 'Shipping Type_Store Pickup',
    'Size_M', 'Size_S', 'Size_XL',
    'Category_Clothing', 'Category_Footwear', 'Category_Outerwear',
    'Season_Spring', 'Season_Summer', 'Season_Winter',
    'Gender_1'
]
for feature in all_possible_features:
    if feature not in customer_df.columns:
        customer_df[feature] = 0
customer_df = customer_df[all_possible_features]

预测新客户的购买金额

predictions = rf.predict(customer_df)
print(f"客户1的预测购买金额: ${predictions[0]:.2f}")
print(f"客户2的预测购买金额: ${predictions[1]:.2f}")
print(f"客户3的预测购买金额: ${predictions[2]:.2f}")

        在当前的研究中,主要采用了机器学习技术,结合了数据挖掘方法,对校园青年的消费行为进行了深入分析。通过建立和应用机器学习模型,能够较全面地识别和理解青年消费偏好的多样性和复杂性,并揭示年龄、性别、季节等因素对其消费选择的显著影响。随机森林模型以其出色的准确性和健壮性,在多个领域已被广泛应用,例如在金融风险评估、医疗病情诊断、市场趋势预测等方面均展现出了极高的实用性。

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

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

相关文章

开源版GPT-4o来了!互腾讯引领风潮,开源VITA多模态大模型,开启自然人机交互新纪元[文末领福利]

目录 总览 VITA 模型的详细介绍 2.1 LLM 指令微调 2.2 多模态对齐 2.2.1 视觉模态 2.3 音频模态 多模态指令微调 3.1 训练数据 3.1.1 训练过程 模型部署&#xff1a;双工策略 4.1 非唤醒交互 4.2 音频中断交互 评估 5.1 语言表现 5.2 音频表现 5.3 多模态表现 …

离散微分几何中的网格(Meshes)

https://zhuanlan.zhihu.com/p/893338073 一、引言 ![](https://img-blog.csdnimg.cn/img_convert/c5e06e652822e0003cf6be91d26436b7.png) 在离散微分几何的广袤领域中&#xff0c;网格&#xff08;Meshes&#xff09;作为一个核心概念&#xff0c;犹如一座桥梁&#xff0c;…

小灰:从0到年入100万+,从程序员到自由职业者他经历了什么?

这是开发者说的第20期&#xff0c;这次给大家带来的畅销书《漫画算法》作者、自媒体创作者程序员小灰。 小灰做自媒体的时间已经有8年了&#xff0c;目前在全网有60w粉丝&#xff0c;同时《漫画算法》系列和《漫画ChatGPT》的书籍&#xff0c;在全网卖了12万册&#xff0c;靠写…

rocky9 samba共享

1. 安装samba服务&#xff0c;设置开机自启。 2. 创建四个用户user1&#xff0c;user2&#xff0c;sale1&#xff0c;manager&#xff0c;user1&#xff0c;user2属于finance组&#xff0c;sale1属于sales组&#xff0c;manager属于manager组。 3. 建立共享目录/opt/finance_…

模版进阶 非类型模版参数

一.模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff0c;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将该参数当成常量来使用。 #i…

打印1000年到2000年之间的闰年

我们要打印1000年到2000年之间的闰年&#xff0c;首先我们先输出1000年到2000年之间的所有的年份&#xff0c;同时我们将闰年的判断方法输入到其中 闰年需要满足下列两个条件的其中之一&#xff1a; 1.能被4整除但不能被100整除 2.能被400整除 打印1000年到2000年之间的闰年…

PCL 贪婪三角投影三角化

目录 一、概述二、代码三、结果 一、概述 PCL中贪婪三角投影三角化的简单使用案例 二、代码 greedy_projection.cpp #include <pcl/point_types.h> #include <pcl/io/pcd_io.h> #include <pcl/search/kdtree.h> // for KdTree #include <pcl/features/…

【软件系统架构设计师-案例-1】架构风格

1. 请用200字以内说明系统可靠性的定义及包含的4个子特性&#xff0c;并简要指出提高系统可靠性一般采用哪些技术&#xff1f; &#xff08;1&#xff09;可靠性定义&#xff1a;系统在规定的时间或环境条件下&#xff0c;完成规定功能的能力&#xff0c;就是系统无故障运行的…

【AD速成】半小时入门AltiumDesigner(速通基础)

一.创建工程 1.工程 文件->新的->项目 PCB选择<Default>Project Name填入自己的工程名称Folder选择工程保存的路径 创建后如图&#xff1a; 这里的.prjPcb的文件即为AD的工程文件。 如果没有Project栏可以在视图->面板->Projects中勾选Projects CtrlS保存工…

Java学习-JVM调优

目录 1. JDK工具包 1.1 jps 1.2 jstat 1.3 jinfo 1.4 jmap 1.5 jhat 1.6 jstack 1.7 VisualVM 2. 第三方工具 2.1 GCEasy 2.2 MAT 2.3 Arthas 3. JVM参数 3.1 标准参数 3.2 非标准参数 3.3 不稳定参数 4. 调优 4.1 什么时候调优 4.2 调优调什么 4.3 调优原…

LINUX 系统管理操作

基础编辑 Tab 单击一次补全 双击列举候选 CTRL U 删除光标前 K 删除光标后 L 清屏&#xff08;只剩新命令行&#xff09; C 取消当前操作 反斜杠“\” 在需要转行的时候输入反斜杠 “\”回车 在>后继续输入 帮助命令 help 命令 大部分内建命令 格式&#xff1a;h…

直播预告 | 药品安全与合规保障难?智能温度监测助您领先制药工业4.0!

您是否在为温度敏感药品的运输和存储合规而苦恼&#xff1f; 是否担心冷链物流中的温度监控漏洞导致药品质量下降&#xff1f; 制药环境中的温湿度监控是否让您无从下手&#xff1f; 这些问题不仅影响药品的安全性&#xff0c;也直接影响企业的合规性和市场竞争力。如何确保环…

Android 保存图片到相册却不在“照片”中显示,只在相簿中显示

背景 需要从网络上下载图片到本地&#xff0c; 并显示在相册中 问题 将图片保存到内存中&#xff0c; 通过媒体API插入到媒体库后&#xff0c;图片只在“相簿”中的“所有项目”中显示&#xff0c;第一个页面的“照片”却不显示 解决办法 图片被保存到 Pictures/AppName 目录…

Linux系统通过编辑crontab来设置定时任务---定时关机

在Linux系统中&#xff0c;crontab 是用来设置周期性被执行的指令的守护进程。通过编辑 crontab&#xff0c;您可以安排定时任务&#xff0c;比如定时关机、定时备份文件、定时运行脚本等。以下是如何编辑 crontab 来设置定时任务的步骤&#xff1a; 打开终端&#xff1a;您可以…

基于springboot+vue的在线宠物用品交易网站

一、系统架构 前端&#xff1a;vue | element-ui | html 后端&#xff1a;springboot | mybatis-plus 环境&#xff1a;jdk1.8 | mysql | maven | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页2 03. web端-注册 04. web端-登录 05. w…

“万万没想到”,“人工智能”获得2024年诺贝尔物理学奖

近日&#xff0c;2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者&#xff0c;这是历史上首次出现这样的情况。这项奖项原本只授予对自然现象和物质的物理学研究作出重大贡献的科学家&#xff0c;如今却将全球范围内对机器学习和神经网络的研究和开发作为了一种能…

SQLite Developer使用说明

1.SQLite Developer下载 SQLite Developer官方版是SharpPlus出品的一款数据库管理工具。支持对sqlite3数据库的管理&#xff0c;能够自动完成窗口显示和执行数据库命令等多种特色。并且支持打开.db文件&#xff0c;适用于Android的开发。另外&#xff0c;使用Sqlite Developer…

压缩包格式未知或损坏怎么办?四个简单修复步骤

压缩文件是我们日常工作中常用的工具&#xff0c;但有时在解压时会遇到提示“格式未知”或“压缩包已损坏”的情况。 这可能是由于下载不完整、文件传输错误、存储介质损坏等原因导致的。这种情况会影响到我们正常获取文件&#xff0c;尤其是当压缩包内含重要数据时更让人头疼…

跨境电商独立站||代码建站和SaaS建站的区别

代码建站和SaaS建站是两种不同的网站搭建方式&#xff0c;它们各有特点和适用场景&#xff1a; 1. 代码建站&#xff1a; 定义&#xff1a;指的是从零开始&#xff0c;使用HTML、CSS、JavaScript等编程语言编写代码来构建网站的过程。 技术要求&#xff1a;需要具备一定的编程知…

vue-自定义加载界面v-loading

在网络请求中&#xff0c;页面会出现空白&#xff0c;要使页面好看点&#xff0c;通常页面会出现一些加载页面 1.准备一个伪类元素需要&#xff0c;用伪类元素给加载界面装上蒙层 .loading:before{content:;position: absolute;left:0;top:0;width: 100%;height: 100%;backgrou…