05-推荐系统案例&作业练习
某大型真爱网,红娘推荐系统开发
杜紫藤女士, 一直在某婚恋网站上寻找自己中意的他, 网站给她推荐了很多男士, 但是她并不是每个都喜欢, 网站统计了这些男士的情况 , 统计数据如下:
每月手机淘宝消费金额(¥) |
每周手机游戏类应用使用时间(h) |
每周阅读类应用使用时间(h) |
是否喜欢 |
40920 |
8.33 |
1.91 |
非常喜欢 |
14488 |
7.15 |
3.35 |
有点喜欢 |
26052 |
1.44 |
1.61 |
不喜欢 |
75136 |
13.15 |
0.86 |
不喜欢 |
... |
... |
... |
... |
数据处理,把excel转换为csv文件
| #导包
import numpy as np
np.set_printoptions(suppress=True)
|
| #加载数据
data = np.loadtxt('yuehui_test.csv',delimiter=',')
|
| #拆分label和feature
feature = data[:,0:3]
label = data[:,-1:]
|
| #设置掩码 过滤数据
maskverylike = data[:, -1] == 0
masklittlelike = data[:, -1] == 1
maskdislike = data[:, -1] == 2
|
| fig = plt.figure(figsize=(8, 8), dpi=80)
plt.scatter(feature[maskverylike][:,0],feature[maskverylike][:,1],c='r',marker='o',label='like')
plt.scatter(feature[masklittlelike][:,0],feature[masklittlelike][:,1],c='b',marker='x',label='normal')
plt.scatter(feature[maskdislike][:,0],feature[maskdislike][:,1],c='y',marker='*',label='dislike')
plt.legend()
plt.show()
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | #展示3d可视化图像
from mpl_toolkits.mplot3d import Axes3D
%matplotlib notebook
# 魔法配置,可以让表格显示在jupyter里面
import matplotlib.pyplot as plt #导包
fig = plt.figure(figsize=(8, 8), dpi=80)
ax = Axes3D(fig)
ax.scatter(feature[maskverylike][:,0],feature[maskverylike][:,1],feature[maskverylike][:,2],c='red',label='like')
ax.scatter(feature[masklittlelike][:,0],feature[masklittlelike][:,1],feature[masklittlelike][:,2],c='green',label='normal')
ax.scatter(feature[maskdislike][:,0],feature[maskdislike][:,1],feature[maskdislike][:,2],c='blue',label='dislike')
plt.show()
|
| #数据标准化
def standration(input):
return (input- np.mean(input.T,axis=1)) /(np.std(input.T,axis=1))
feature = standration(feature)
|
作业练习-KNN算法
输入任意的每月手机淘宝消费金额(¥) 每周手机游戏类应用使用时间(h) 每周阅读类应用使用时间(h) ,判断杜紫藤女生是否喜欢他。
寻找合适的K