随笔分类 - 机器学习实战
摘要:啥叫轮廓 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。 轮廓与边缘很相似,但轮廓是连续的,边缘并不全都连续,其实边缘主要是作为图像的特征使用,比如用边缘特征可以区分脸和手,而轮廓主要用来分析物体的形态,比如物体的周长和面积等,可以说边缘包括轮廓。 寻找轮廓的操作一般用于二值化图,所以通常会
阅读全文
摘要:图像梯度 我们知道一阶导数可以用来求极值。把图片想象成连续函数,因为边缘部分的像素值与旁边的像素明显有区别,所以对图片局部求极值,就可以得到整幅图片的边缘信息。不过图片是二维的离散函数,导数就变成了差分,这个查分就变成了图像梯度。 1. 垂直边缘提取 滤波是应用卷积来实现的,卷积的关键就是卷积核。我
阅读全文
摘要:随机森林(Random Forest,简称RF) 森林是有树构建的,随机森林是由多个决策树构建的。 如何随机? 流程: 1. 采取有放回的抽样方式构建子数据集,保证不同子数据集之间的数量级一样 2. 利用子数据集构建子决策树,每个子决策树输出一个结果 3. 统计子决策树的投票结果,得到最终分类就是随
阅读全文
摘要:一、使用movieLens数据集 二、算法调参 我们使用sklearn常用到的网格搜索交叉验证(GridSearchCV)来选择最优的参数 在自己的数据集上训练模型 该如何做? 1. 载入自己的数据集 2. 使用不同的推荐算法进行建模比较 推荐系统--不同电影之间的相似度 一、载入数据,使用算法算出
阅读全文
摘要:Surprise Surprise是scikit系列中的一个。Surprise的User Guide有详细的解释和说明 支持多种推荐算法 基础算法/baseline algorithms 基于近邻方法(协同过滤)/neighborhood methods 矩阵分解方法/matrix factoriz
阅读全文
摘要:基于SVD的图像压缩 原始图像:手写数字,32* 32=1024像素。可以使用SVD来对数据降维 一、分析Sigma的长度个数 通常保留矩阵80%~90%的能量,就可以得到重要的特征并去除噪声 二、将文本数据转化为矩阵 三、打印矩阵 四、实现图像压缩,允许基于任意给定的奇异值数目来重构图像 五、总结
阅读全文
摘要:推荐未尝过的菜肴-基于SVD的评分估计 实际上数据集要比我们上一篇展示的myMat要稀疏的多。 一、计算一下到底有多少个奇异值能达到总能量的90%(下一篇我们将用一个函数实现该功能) 二、相似度计算(欧式距离、皮尔逊相关系数、余弦相似度) 三、基于SVD的评分估计 四、排序获取最后的推荐结果
阅读全文
摘要:推荐未尝过的菜肴-基于物品相似度的推荐 推荐系统的工作过程:给定一个用户,系统会为此用户返回N个最好的推荐菜 1. 寻找用户没有评级的菜肴,即在用户-物品矩阵中的0值 2. 在用户没有评级的所有物品中,对每个物品预计一个可能的评级分数(利用相似度计算)。这就是说,我们预测用户对每个物品的打分 3.
阅读全文
摘要:集成方法(ensemble method)又叫元算法(meta-algorithm):将不同的分类器组合起来。 通俗的说:就是三个臭皮匠赛过诸葛亮。做决定时,考虑多个人的意见,不是一个人的意见 集成方法: 1. bagging(自举汇聚法):基于数据随机重抽样的分类器构建方法。并行算法 2. boo
阅读全文
摘要:手写数字是32x32的黑白图像。为了能使用KNN分类器,我们需要把32x32的二进制图像转换为1x1024 1. 将图像转化为向量 测试: 2. KNN分类器 3. 手写数字识别系统的测试代码 4. 总结 k-近邻算法的特点: 1. 是分类数据最简单最有效的算法 2. 必须保存全部数据集,会使用大量
阅读全文
摘要:KNN原理 1. 假设有一个带有标签的样本数据集(训练样本集),其中包含每条数据与所属分类的对应关系。 2. 输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较。 a. 计算新数据与样本数据集中每条数据的距离。 b. 对求得的所有距离进行排序(从小到大,越小表示越相似) c.
阅读全文
摘要:关于手写识别问题,用KNN分类效果也不错,但是KNN需要保留所有的训练样本。而对于支持向量机只需保留边界的支持向量。 因为有些函数代码与上一篇博文(支持向量机-在复杂数据上应用核函数)的一致。建议只需将本节代码放入上篇代码之后即可。 1. 将图像转换成向量 2. 加载图像 3. 测试数字分类 支持向
阅读全文
摘要:当我们遇到数据线性不可分时,就要用到核函数,将数据从低维的特征空间映射到高维。好处是:低维需要解决非线性问题,到了高维就变成了线性问题。 最流行的核函数:径向基函数(radial basis function)(rbf) 1. 加载数据集 2. 支持函数 3. 辅助函数(与Platt SMO算法基本
阅读全文
摘要:完整版SMO算法与简单的SMO算法: 实现alpha的更改和代数运算的优化环节一模一样,唯一的不同就是选择alpha的方式。完整版应用了一些能够提速的方法。 同样使用Jupyter实现,后面不在赘述 参考地址:https://github.com/apachecn/AiLearning/blob/m
阅读全文
摘要:SMO:序列最小优化 SMO算法:将大优化问题分解为多个小优化问题来求解 SMO算法的目标是求出一系列的alpha和b,一旦求出这些alpha,就很容易计算出权重向量w,并得到分隔超平面 工作原理:每次循环选择两个alpha进行优化处理,一旦找出一对合适的alpha,那么就增大一个同时减少一个 这里
阅读全文
摘要:支持向量机(Support Vector Machines, SVM):是一种监督学习算法。处理二分类 支持向量(Support Vector)就是离分隔超平面最近的那些点。 机(Machine)就是表示一种算法,而不是表示机器。 线性可分数据集:将数据集分隔开的直线称为分隔超平面。我们希望找到离分
阅读全文
摘要:Logistic回归:一种最优化算法。用于分类,其实就是对分类边界线建立回归公式。啥?啥叫回归?就是用一条直线对数据点进行拟合,拟合的过程称作回归。。。。。说白了就是找一条线把数据点分开 最优化算法:梯度上升算法和改进的梯度上升算法。。。一听到改进,感觉肯定比原算法牛逼 sigmoid函数 z为输入
阅读全文
摘要:网上的内容感觉又多又乱,自己写一篇决策树算法。希望对别人有所启发,对自己也是一种进步。 决策树 须知概念 信息熵 & 信息增益 熵: 熵(entropy)指的是体系的混乱的程度,在不同的学科中也有引申出的更为具体的定义,是各领域十分重要的参量。 信息熵(香农熵): 是一种信息的度量方式,表示信息的混
阅读全文

浙公网安备 33010602011771号