3天搞定用户购买预测:Social_Network_Ads数据集实战指南

3天搞定用户购买预测:Social_Network_Ads数据集实战指南

【免费下载链接】100-Days-Of-ML-Code 100 Days of ML Coding 【免费下载链接】100-Days-Of-ML-Code 项目地址: https://gitcode.com/gh_mirrors/10/100-Days-Of-ML-Code

你是否还在为机器学习入门项目找不到合适数据集而烦恼?是否想通过真实案例掌握分类算法应用?本文将带你使用Social_Network_Ads.csv数据集,从零开始完成用户购买行为预测,3天内掌握数据预处理、模型训练与评估全流程。读完本文你将获得:

  • 数据集特征工程完整步骤
  • SVM(支持向量机)分类模型实现
  • 模型可视化与评估方法
  • 项目实战代码与图表解析

数据集解析:揭开用户购买行为的秘密

Social_Network_Ads.csv包含400条用户记录,核心字段包括:

  • Age:用户年龄(数值型)
  • EstimatedSalary:预估薪资(数值型)
  • Purchased:是否购买(0/1分类标签)

数据集前5行示例:

User ID,Gender,Age,EstimatedSalary,Purchased
15624510,Male,19,19000,0
15810944,Male,35,20000,0
15668575,Female,26,43000,0
15603246,Female,27,57000,0

关键特征分布

年龄与薪资是影响购买决策的核心因素。通过数据观察发现:

  • 35岁以上用户购买率显著提升
  • 薪资80000以上群体购买意愿增强
  • 性别对购买决策影响不显著

数据预处理:为模型训练做准备

特征选择与划分

从数据中提取关键特征并划分训练集/测试集:

dataset = pd.read_csv('Social_Network_Ads.csv')
X = dataset.iloc[:, [2, 3]].values  # 选择年龄和薪资作为特征
y = dataset.iloc[:, 4].values       # 购买状态作为标签
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)

特征缩放

由于年龄和薪资数值范围差异大,需要进行标准化处理:

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

SVM模型训练:构建购买预测器

支持向量机(Support Vector Machine, SVM)是解决二分类问题的强大算法。使用线性核函数训练模型:

from sklearn.svm import SVC
classifier = SVC(kernel = 'linear', random_state = 0)
classifier.fit(X_train, y_train)

模型预测与评估

y_pred = classifier.predict(X_test)

# 混淆矩阵评估模型性能
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)

混淆矩阵结果显示模型准确率达90%以上,仅有少量预测错误。

结果可视化:直观理解模型决策边界

训练集结果可视化

![SVM训练集结果](https://raw.gitcode.com/gh_mirrors/10/100-Days-Of-ML-Code/raw/5d67810c1498082e7bb262cf6397d7861dfd9891/Other Docs/ets.png?utm_source=gitcode_repo_files)

测试集结果可视化

![SVM测试集结果](https://raw.gitcode.com/gh_mirrors/10/100-Days-Of-ML-Code/raw/5d67810c1498082e7bb262cf6397d7861dfd9891/Other Docs/test.png?utm_source=gitcode_repo_files)

图表显示SVM模型通过线性边界将用户划分为购买和不购买两类:

  • 绿色区域:预测购买用户
  • 红色区域:预测不购买用户
  • 散点:实际用户数据点

可以清晰看到,年龄较大且薪资较高的用户更可能位于绿色区域。

项目实战总结与拓展

通过Social_Network_Ads.csv数据集实战,我们掌握了:

  1. 数据加载与探索性分析方法
  2. SVM模型构建与训练流程
  3. 模型评估与可视化技巧

进一步优化方向

  • 尝试不同核函数(如RBF核)提升模型性能
  • 增加特征工程,构建年龄-薪资组合特征
  • 使用网格搜索优化SVM超参数

完整代码实现可参考Day 13 SVM.md,更多机器学习实战案例请查看Code/目录下的系列教程。

点赞收藏本文,关注后续100-Days-Of-ML-Code更多实战案例!下期将带来决策树算法在本数据集上的应用对比。

【免费下载链接】100-Days-Of-ML-Code 100 Days of ML Coding 【免费下载链接】100-Days-Of-ML-Code 项目地址: https://gitcode.com/gh_mirrors/10/100-Days-Of-ML-Code

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值