前端工程师的 AI 实战课
柳博文
ABB 高级研发工程师,前阿里前端算法工程师
955 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 20 讲/共 27 讲
前端工程师的 AI 实战课
15
15
1.0x
00:00/00:00
登录|注册

19|商业意义(下):如何利用端侧重排提升转化率

你好,我是柳博文。
这节课我们继续学习如何利用端侧重排提升转化率。上节课我们已经学习了传统算法里的代表——皮尔逊相关系数和 Apriori 算法。
今天,我们还会学习一些机器学习和深度学习里的典型算法。最后我还会为你演示如何在端侧把算法跑起来,最终实现转化率的提升。
好,话不多说,我们直接开始吧。

机器学习算法代表

在机器学习这个方向上,我们选择了 kmeans 和决策树算法。

kmeans 算法

首先是 kmeans 算法,其原理是将用户分成不同的簇,每个簇表示一组具有相似点击行为的用户,之后就可以根据这些簇推荐定制化 UI 界面。
为了实现这个算法,针对需要处理的数据结构,我们可以使用用户属性和点击位置及卡片类型作为特征。然后应用 K-Means 聚类,将用户分为若干簇,根据聚类结果,向每个簇的用户展示不同的 UI 结构。
我们仍然使用 NodeJS 来实现,代码如下:
const fs = require('fs');
const kmeans = require('node-kmeans');
// 读取 JSON 文件中的数据
const data = JSON.parse(fs.readFileSync('../data/oneonewithcardtype.json', 'utf-8'));
// 定义卡片类型区域
const regions = {
bar: [0, 100],
seckill: [150, 350],
item_1: [370, 470],
banner: [490, 590],
item_2: [610, 710],
item_3: [830, 930],
item_4: [950, 1050],
item_5: [1070, 1170],
item_6: [1190, 1290],
item_7: [1310, 1410],
item_8: [1430, 1530],
item_9: [1550, 1650],
item_10: [1670, 1770],
item_11: [1790, 1890],
item_12: [1910, 2010],
item_13: [2030, 2130],
item_14: [2150, 2250],
item_15: [2270, 2370],
item_16: [2390, 2490],
item_17: [2510, 2610],
item_18: [2630, 2730],
item_19: [2750, 2850],
item_20: [2870, 2970],
item_21: [2990, 3090],
item_22: [3110, 3210],
item_23: [3230, 3330],
item_24: [3350, 3450],
item_25: [3470, 3570],
item_26: [3590, 3690],
item_27: [3710, 3810],
item_28: [3830, 3930],
item_29: [3950, 4050],
item_30: [4070, 4170],
item_31: [4190, 4290],
item_32: [4310, 4410],
item_33: [4430, 4530],
item_34: [4550, 4650],
item_35: [4670, 4770],
item_36: [4790, 4890],
item_37: [5010, 5110],
item_38: [5230, 5330],
};
// 将卡片类型映射到数值
const cardTypeToNumber = (cardType) => {
return Object.keys(regions).indexOf(cardType);
};
// 将性别和年龄映射到数值
const genderToNumber = (gender) => (gender === 'male' ? 0 : 1);
const ageToNumber = (age) => {
if (age >= 18 && age <= 25) return 0;
if (age >= 26 && age <= 35) return 1;
if (age >= 36 && age <= 45) return 2;
if (age >= 46 && age <= 55) return 3;
return 4; // 超过范围的年龄
};
// 转换数据格式以便进行聚类
const vectors = data.map((entry) => [
genderToNumber(entry.gender),
ageToNumber(entry.age),
cardTypeToNumber(entry.clickCardType),
]);
// 设置聚类的数量
const numClusters = 3; // 可以调整聚类数量
// 执行 K-means 聚类
kmeans.clusterize(vectors, { k: numClusters }, (err, res) => {
if (err) {
console.error('K-means 聚类出错:', err);
} else {
console.log('K-means 聚类结果:');
res.forEach((cluster, index) => {
const userIds = cluster.clusterInd.map(pointIndex => data[pointIndex].userId);
const uniqueUserIds = [...new Set(userIds)]; // 去重用户ID数组
console.log(`\n聚类 ${index + 1}:`);
console.log(`质心:`, cluster.centroid);
console.log(`用户ID数组:`, uniqueUserIds);
});
}
});
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 本文介绍了如何利用端侧重排提升转化率,主要涉及机器学习和深度学习里的典型算法,包括kmeans和决策树算法。 2. 通过机器学习算法的分析,可以根据用户行为模式进行个性化推荐,帮助用户快速找到心仪商品并下单。 3. 通过决策树算法的预测,可以根据用户的性别和年龄组合推测其偏好的卡片位置,从而优化UI布局,激活长尾效应。 4. 通过分析用户行为模式,可以动态调整UI布局,化简操作流程,从而提升转化率。 5. 本文介绍的算法和方法可以帮助企业优化用户体验,提高转化率,实现商业价值。 6. 通过算法分析用户行为模式,可以为不同用户群体提供个性化推荐,提高用户满意度和购买意愿。 7. 本文介绍的算法和方法为企业提供了利用端侧重排提升转化率的实际操作指南和技术支持。 8. RNN 用于处理序列数据,适用于有时间依赖的数据,而CNN 擅长处理图像数据,对数据的空间结构敏感,适合图像分类、目标检测等任务。 9. 选择 RNN 还是 CNN 取决于数据类型,处理时间序列数据适合用 RNN,处理图像数据适合 CNN。 10. 通过CSR的方式,在客户端使用JavaScript来动态调控UI结构,以此来实现端侧重排。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《前端工程师的 AI 实战课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)