forked from mlch911/studentTrainPlan
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path说明文档.py
74 lines (52 loc) · 3.22 KB
/
说明文档.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# file_name: 说明文档
# author: catherine.qin
# create: 2020/5/08 5:49 下午
'''
绿色--已选
黄色--预选
Flask 框架里,可以用 jsonify 返回 json 数据
Request对象的重要属性如下所列:
method - 当前请求方法。Form - 它是一个字典对象,包含表单参数及其值的键和值对。
args - 解析查询字符串的内容,它是问号(?)之后的URL的一部分。
Cookies - 保存Cookie名称和值的字典对象。
files - 与上传文件有关的数据。
可以利用Flask所基于的Jinja2模板引擎的地方。而不是从函数返回硬编码HTML,可以通过render_template()函数呈现HTML文件
Flask类有一个redirect()函数。调用时,它返回一个响应对象,并将用户重定向到具有指定状态代码的另一个目标位置。
redirect()函数的原型如下:
Flask.redirect(location, statuscode, response)
在上述函数中:
location参数是应该重定向响应的URL。
statuscode发送到浏览器标头,默认为302。
response参数用于实例化响应。
推荐模块:
前端发送用户信息到后端
后端从数据库中查询所有用户的课程评分,形成评分矩阵
对评分矩阵进行SVD分解,得到用户以及课程的隐特征向量
根据隐特征向量向用户推荐课程以及同伴,返回结果到前端
前端以柱状图显示结果
query().py:
data = {}
data['name'] = '总进度'
children = []
children1 = {}
children1['name'] = '思想政治理论'
children1_list =[]
add_time_list = [[]...]
SVD(singular value decomposition)(奇异值分解):
将一个比较复杂的矩阵用更小更简单的3个子矩阵的相乘来表示,这3个小矩阵描述了大矩阵重要的特性。
SVD与PCA不同,PCA是对数据的协方差矩阵进行矩阵的分解,而SVD是直接在原始矩阵上进行的矩阵分解。并且能对【非方阵】矩阵分解,得到左奇异矩阵U、sigma矩阵Σ、右奇异矩阵VT。
优点:简化数据,去除噪声点,提高算法的结果;
缺点:数据的转换可能难以理解;
适用于数据类型:数值型。
通过SVD对数据的处理,我们可以使用小得多的数据集来表示原始数据集,这样做实际上是去除了噪声和冗余信息,以此达到了优化数据、提高结果的目的。
推荐系统:SVD的另一个应用就是推荐系统,较为先进的推荐系统先利用SVD从数据中【构建一个主题空间】,然后再在该空间下【计算相似度】,以此提高推荐的效果。
基于SVD的优势在于:用户的评分数据是稀疏矩阵,可以用SVD将原始数据映射到低维空间中,然后计算物品item之间的相似度,可以节省计算资源。
整体思路:
先找到用户没有评分的物品,
然后再经过SVD“压缩”后的低维空间中,
计算未评分物品与其他物品的相似性,得到一个预测打分,
再对这些物品的评分从高到低进行排序,返回前N个物品推荐给用户。
参考https://www.cnblogs.com/flightless/p/10424035.html
'''