发布时间:2024-07-02 08:01
在上周我写了一篇“基于机器学习的银行电话营销客户购买可能性预测分析”,那是作为对客户购买可能性预测分析的第一次验证案例的尝试。今天是基于机器学习的客户购买可能性预测分析的第二次验证案例:推荐系统。
基于热度推荐:由专家或者一定时期产品销售情况或者主推产品,制作一个排行榜,在没有用户数据的情况下根据排行榜推荐
基于用户特征推荐:通过历史数据,由算法(机器学习)根据用户特征进行推荐,在用户数据能够填写一些基本数据的情况下
基于知识推荐:通过用户要求,比如果需要高收益,需要低风险的产品,在数据库对产品进行筛选,然后推荐
基于内容推荐:通过用户已经购买的产品,推荐内容相似的物品,这里的内容相似是由专业人员提供
协同过滤推荐:通过算法直接计算物品相识度,注意这里的物品相似度不是2个物品内容,而是有购买情况来确定的,比如说购买A(手机)的用户,大多数都购买了B(手机套),算法计算出A与B是相似的
一些机器学习推荐:通过以一些机器学习算法,比如说FM(因式分解机),深度学习,deepfm等
其中对于新用户通常三选一 对于老用户,通常是使用多种算法,然后加权得出最优的推荐列表
在这里主要3种方法验证,协同过滤,FM(因式分解机),deepFM。
协同过滤算法
计算所有物品的相似度(注意不是内容相似)
推荐方法: 对用户够买(或者评价过)的物品查询相识度,然后加权推荐
简单例子
最终推荐(从左到右)
基于协同过滤展示 对user=‘1’
Python,打印结果,这里看过的电影只打印前5,推荐电影只推荐加权后前10
------WATCHED MOVIES--------
1193 "One Flew Over the Cuckoo's Nest (1975)" 'Drama'
2355 "Bug's Life, A (1998)" "Animation|Children's|Comedy"
1287 'Ben-Hur (1959)' 'Action|Adventure|Drama'
2804 'Christmas Story, A (1983)' 'Comedy|Drama'
595 'Beauty and the Beast (1991)' "Animation|Children's|Musical"
------RECOMMEND MOVIES--------
1196 'Star Wars: Episode V - The Empire Strikes Back (1980)' 'Action|Adventure|Drama|Sci-Fi|War']]
1265 'Groundhog Day (1993)' 'Comedy|Romance' 364 'Lion King, The (1994)' "Animation|Children's|Musical"
260 'Star Wars: Episode IV - A New Hope (1977)' 'Action|Adventure|Fantasy|Sci-Fi'
2571 'Matrix, The (1999)' 'Action|Sci-Fi|Thriller'
2716 'Ghostbusters (1984)' 'Comedy|Horror'
1022 'Cinderella (1950)' "Animation|Children's|Musical"
318 'Shawshank Redemption, The (1994)' 'Drama'
1282 'Fantasia (1940)' "Animation|Children's|Musical"
1580 'Men in Black (1997)' 'Action|Adventure|Comedy|Sci-Fi'
因式分解机算法
评分矩阵是一种反映用户对物品喜欢的矩阵,如下图
因式分解机一种补全评分矩阵的的算法(红色为算法补全),然后根据评分推荐(对用户1推荐为物品3>物品6>物品1>物品4>物品5)
算法解释:通过已知的评分去找到P和Q,K为隐藏的特征,可以设置不同值
因式分解机算法的效果如下
------RECOMMEND MOVIES--------
318 'Shawshank Redemption, The (1994)'
858 'Godfather, The (1972)'
1198 'Raiders of the Lost Ark (1981)'
50 'Usual Suspects, The (1995)'
2858 'American Beauty (1999)'
912 'Casablanca (1942)'
593 'Silence of the Lambs, The (1991)'
750 'Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb (1963)'
908 'North by Northwest (1959)'
1221 'Godfather: Part II, The (1974)'
deepFM算法
deepFM 是一种结合FM算法和深度学习的算法,结构如下
deepFM算法的效果如下
------RECOMMEND MOVIES--------
593 'Silence of the Lambs, The (1991)'
1617 'L.A. Confidential (1997)'
1233 'Boat, The (Das Boot) (1981)'
318 'Shawshank Redemption, The (1994)'
1198 'Raiders of the Lost Ark (1981)'
858 'Godfather, The (1972)'
733 'Rock, The (1996)'
1276 'Cool Hand Luke (1967)'
2571 'Matrix, The (1999)'
953 "It's a Wonderful Life (1946)"
最大化,预测准确度
在满足一定要求的情况下
比如: