开学祭
Q: 学校怎么样?
A: 很大,不用导航路都找不到。
Q: 每天干什么?
A: 吃饭上课睡觉打游戏。
Q: 你居然还睡觉?
A: 还要适应一段时间。
Q: 你喜欢在寝室还是在图书馆学习?
A: 我连图书馆在哪都不知道?
Q: 一天吃几顿饭?
A: 两餐都吃不下。
Q: 学校食堂怎么样?
A: 小份饺子15个,阿姨害怕我不够吃,然后最后五个饺子只吃馅不吃皮。
Q: 评价一下每节课。
A: 语文课快乐但啥都没学到,数学课好像学了很多但什么都不懂,英语课没上考试先声夺人,化学课不知所云,生物课上一节忘一节。
总结: 开学快乐!
目标:好好学习,天天向上,每天早起背英语,晚上复习,9点睡,7点起,养成好身体,还有什么不满意,尽管和我提。
推荐系统之协同过滤矩阵分解
前言
推荐系统中有许多算法,本文主要讲解基于协同过滤的矩阵分解算法。
协同过滤
协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。
矩阵分解
这里主要介绍LFM模型。
假如有两张表,一张是物品的属性表。
内容是每个物品该性质的程度。
性质1
性质2
性质3
物品1
物品2
...
奇异值分解之图片压缩
这一篇主要是代码,后面有理论。
import numpy as np
from PIL import Image
img = Image.open("3.png").convert("RGB")
n, m = img.size
pix = img.load()
r, g, b= img.split()
red = np.array(r)
green = np.array(g)
blue = np.array(b)
以上将图像读取并分离为rgb
from numpy.linalg import svd
def chg(pic):
U, s, VT = svd(pic)
Sigma = np.zeros( (pic.shape[0], pic.shape[1]) )...
评论文本分类
前言
本项目旨在巩固机器学习算法,测试不同机器学习对文本分类的效果
由于暑假前不会更新(认真备战期末考试),本文先占坑,以后再补。
目的
根据已有数据,判断一条评论的星级。
数据的获得与处理
下载亚马逊评论数据集,获得 json 文件。
将文件拆成 $25$ 个,每个包含 $10^5$ 条评论的小文件
对每个文件提取单词,转小写,统计出常用单词 $1729$ 个(出现次数超过千分之一),转为编号形式。
平均每条评论出现单词数不多(远小于 $1792$ 个),算法可以对此进行优化。
中小规模数据效果
训练集 $10^5$ 个,测试集 $10^5$ 个。
感知机
正确率 $70\%$ 左右。
作为最简单的神经网络,这个正确率已经很可观了。
由于感知机只能...
线性代数常见操作及其复杂度
前言
最近在预习线性代数 (实际上什么也没学懂) 随便写几篇博客水一水,主要是很久没写博客了。
正文
话不多说,直接开始!
矩阵乘法
暴力操作显然是可以做到 $O(n^3)$ 这也是它的实用复杂度,然而有很多优化的计算方法。
以下几种算法均基于矩阵分块。
Strassen算法
通过将矩阵分为2*2,通过设置中间变量的方式将原本8次乘法优化为7次乘法和18次加法。
如此通过主定理即可求出时间复杂度
\[T(n)=7*T(n/2)+T(n^2)\\
T(n)=O(n^{\log_27})\approx O(n^{2.81})\]
目前最优算法时间复杂度约为 $O(n^{2.37})$ ,推荐一下这篇文章,但我好像看不太懂。
此外多线程,GPU等均可优化矩阵乘法。
...