- 博客(39)
- 收藏
- 关注
原创 推荐系统-矩阵分解
推荐系统-矩阵分解为什么要矩阵分解先说几点邻近模型的问题:1.物品之间存在相关性,信息量并不随着向量维度增加而线性增加;2.矩阵元素稀疏,计算结果不稳定,增减一个向量维度,导致邻近结果差异很大的情况存在。上述两个问题,在矩阵分解中可以得到解决。矩阵分解,直观上说来就是把原来的大矩阵,近似分解成两个小矩阵的乘积,在实际推荐计算时不再使用大矩阵,而是使用分解得到的两个小矩阵。具体说来就是,假设用户物品的评分矩阵 A 是 m 乘以 n 维,即一共有 m 个用户,n 个物品。我们选一个很小的数 k,这个
2021-01-31 11:10:17
373
原创 推荐系统-近邻推荐
推荐系统-近邻推荐说到推荐系统,最先想到肯定是协同过滤。协同过滤的重点在于协同”,所谓协同,也就是群体互帮互助,互相支持是集体智慧的体现,协同过滤也是这般简单直接,历久弥新。协同过滤当推荐系统先使用基于内容推荐的推荐系统之后,就有了可观的用户行为了,这些用户行为通常是正向的,也就是用户或名或暗的表达出自己喜欢的行为。这些行为可以表达成一个用户和物品的关系矩阵,或者说网络,或者是说图,其实都是一个东西。上述的用户物品的关系矩阵是协同过滤算法中最为重要的。协同过滤通常划分为两类:基于记忆的协同过滤;基于模
2021-01-26 11:35:48
243
原创 推荐系统-内容推荐
推荐系统-内容推荐用户画像一个推荐系统大概有三步:认识每一个用户->给他推荐他感兴趣的东西->各种指标上升。用户画像(User Profile)大体分为给机器看的和给人看的,其中给人看的一般是运营,产品等用的。我们这里只关注给机器看的。我们知道要对用户和物品进行计算,是需要对数据进行计算的,因此我们首先就要将用户和物品都向量化,用户向量化后的结果,就是User Profile,俗称“用户画像”,所以,用户画像不是推荐系统的目的,而是在构建推荐系统过程中产生的一个关键环节的副产品。用户画像
2021-01-20 11:14:57
933
原创 推荐系统-基础概念
推荐系统-基础概念推荐系统是什么 推荐系统是一种信息过滤系统,手段是预测用户(User)对物品(Item)的评分和偏好。 推荐系统做什么?它可以把用户和物品之间能产生的联系提前找出来。推荐系统需要做什么?从已有的连接去预测未来的连接。推荐系统怎么做?机器推荐和人工推荐,相对应就是个性化推荐以及编辑推荐。推荐系统的问题模式 推荐系统的使命是为用户和物品建立连接,方式是提前找出那些隐藏的连接呈现给用户,这属于一个预测问题,又可以细分为评分预测和行为预测。评分预测 比如:用户消费完一个物品之
2021-01-18 14:37:20
244
原创 《统计学习方法》-李航、《机器学习-西瓜书》-周志华总结+Python代码连载(七)--支持向量机SVM(Support vector machines)
一、支持向量机的概述给定训练样本集,分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同样本分开,支持向量机就是讨论并解决怎么找到这样的超平面。在样本空间中,划分超平面可通过如下线性方程来描述: 其中为法向量,决定了超平面的...
2019-10-29 16:56:47
909
1
原创 《统计学习方法》-李航、《机器学习-西瓜书》-周志华总结+Python代码连载(六)--集成学习_FM/GBDT/Xgboost
一、随机森林/FM(Random Forst)随机森林是集成学习Bagging流派中一个变体,RF在以决策树为基学习构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择。传统的决策树在选择划分属性时是在当前节点的属性集合中选择最优的一个;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。...
2019-10-03 16:32:59
1349
原创 《统计学习方法》-李航、《机器学习-西瓜书》-周志华总结+Python代码连载(五)--集成学习_提升方法
一、集成学习概论集成学习(Ensemble learning)通过构建并结合多个学习器来完成学习任务,实际上,就是“三个臭皮匠顶个诸葛亮”的道理。集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化能力。这对“弱学习器(weak learner)”尤为明显,因此集成学习的很多理论研究都是针对弱学习器进行的,而基学习器有时也被称为弱学习器。一般根据弱学习器有无依赖关系,大...
2019-09-19 09:39:56
390
原创 《统计学习方法》-李航、《机器学习-西瓜书》-周志华总结+Python代码连载(四)--决策树(Decison-Tree)
一、决策树的概论决策树是一种基本的分类与回归方法,是表示基于特征对示例进行分类与回归的树形结构。决策树可以转换成一个if-then规则的集合,也可以看作是定义在特征空间划分上的类的条件概率分布。一般的,一颗决策树包含一个根结点,若干个内部节点和若干个叶结点,每个叶结点对应于决策结果,其他的每个结点则对应于一个属性测试,生成决策树的基本流程遵循‘分而治之’策略。具体算法如下:输入:训练集...
2019-08-31 13:55:45
931
原创 《统计学习方法》-李航、《机器学习-西瓜书》-周志华总结+Python代码连载(三)--贝叶斯分类器(Bayes)
一、贝叶斯概论假设有N种可能的类别标记,即,是将一个真实的的样本误分类成所产生的损失。在后验概率的基础上可得到将样本x分类成的期望损失(条件风险):需要寻找到一个准则,使得所有样本对每个分类产生的条件风险最小,显然,对每个样本x能最小化条件风险即可,因此就有贝叶斯判定准则(Bayes decision rule):为最小化总体条件风险,只需要在每个样本上选择能使条件风险最小,即,此时则...
2019-07-22 11:09:29
532
原创 《统计学习方法》-李航、《机器学习-西瓜书》-周志华总结+Python代码连载(二)--线性模型(Linear model)
一、线性回归(Linear regression)线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记,用公式表达为:,使得。那么怎么求得w,b呢?基本使用最小二乘法和梯度下降。最小二乘法:最小化均方差函数(本连载一中有相关解释)。 梯度下降:是一种迭代算法。选取适当的初值,不断迭代,更新参数值,进行目标函数的极小化,直到收敛。由于负梯度方向是使函数值下降最快的方向,在迭代的每一步...
2019-07-16 15:56:16
819
原创 《统计学习方法》-李航、《机器学习-西瓜书》-周志华总结+Python代码连载(一)--模型选择+误差评估
一、模型选择1.1 模型模型就是学习的条件概率分布或者决策函数(这里只指监督学习)。条件概率的集合:,决策函数的集合:。条件概率表示的模型为概率模型,决策函数表示的模型为非概率模型。1.2 模型选择模型选择基本是选择一个模型评估指标(均方差、准确率、F1等)同时考虑欠拟合(在训练集上表现不好-为将训练样本的一般性质学好)和过拟合(在训练集和测试集上表现有很大差异-将训练集上的性质学...
2019-07-11 11:01:01
1459
原创 安装Windows10与linux(ubuntu18.04)双系统出现的 无法将 grub-efi 软件包安装到/target/中,如果没有 GRUB 启动引导期,所安装的系统无法启动。”
先是安装好了windows10,从原先的硬盘中分出了100G的空间来安装ubuntu18.04,出现了题中的问题。看了很多帖子,找到了解决方法:1、先在原先的win10系统上,下载分区助手(https://www.disktool.cn/)如果是MBR(最多只能由4个主分区)格式,建议用分区助手将此磁盘的MBR格式转换为GPT(可以有多个主分区-有利于ubuntu系统的分区)格式(因为...
2019-07-01 17:21:26
1542
原创 数据结构与算法导论(C++)连载(九)--排序算法
本文代码实现了六种较为基础的排序算法(冒泡、插入、希尔、堆、归并、快速)。一、最小堆的建立(堆排序中要用到)在MinHeap.h中:#include"iostream"using namespace std;#define ElenmentType inttypedef struct HeapStruct *MinHeap;struct HeapStruct { Ele...
2019-05-08 16:13:35
185
原创 数据结构与算法导论(C++)连载(八)--图(邻接矩阵存储和链式邻接表存储)
图-表示多对多的关系,一组顶点V(一个非空有限顶点集合),一组边E(一个有限边集合),边上有权重称为网络。用邻接矩阵(稠密图)或者邻接表(稀疏图)表示一个图。一、邻接矩阵表示:在Graph_M.h中:#include"iostream"using namespace std;/******************邻接矩阵表示图*************************...
2019-05-06 15:04:28
310
原创 数据结构与算法导论(C++)连载(七)--最大堆和哈夫曼编码
下面主要编码实现关于树结构的两种应用-最大堆和哈夫曼编码。一、最大堆:根结点是整棵树的最大值的完全二叉树,这种结构在排序等功能中应用的比较广,类似的结构有最小堆。在MaxHeap.h:#include"iostream"#define ElementType intusing namespace std;class MaxHeap{public: MaxHeap();...
2019-04-27 14:48:17
326
原创 数据结构与算法导论(C++)连载(六)--二叉搜索树
二叉搜索树-非空左子树小于根结点键值,非空右子树大于根结点键值,左右子树均为二叉搜索树。一、二叉搜索树基本实现新建一个类BinSeachTree,在BinSeachTree.h中:#include"iostream"using namespace std;#define ElementType int#define SearchTree TreeNode*#define P...
2019-04-25 10:41:46
295
原创 数据结构与算法导论(C++)连载(五)--二叉树
二叉树是每个结点最多有两个子树的树结构。遍历有先序/中序/后序三种基本的方式。新建一个类BinTree。在BinTree.h中:#include"iostream"using namespace std;#define ElementType charclass TreeNode {public: ElementType Data; TreeNode * Left; ...
2019-04-24 10:27:11
159
原创 数据结构与算法导论(C++)连载(四)--堆栈(顺序存储和链式存储)
堆栈是一种特殊的线性表,因此也可以分为顺序存储和链式存储。队列最突出的特点是先进后出。一、顺序存储新建一个类Stack,在Stack.h中:using namespace std;#define ElementType int#define Maxsize 1024class Stack{public: Stack(); ~Stack(); void Push(...
2019-04-23 11:20:43
204
原创 数据结构与算法导论(C++)连载(三)--队列(顺序存储和链式存储)
队列是一种特殊的线性表,因此也可以分为顺序存储和链式存储。队列最突出的特点是先进先出。一、顺序存储新建一个类Queue,在Queue.h中:#include"iostream"using namespace std;#define MaxSize 1024#define ElementType int// 顺序存储class Queue{public: Queue...
2019-04-22 11:13:44
200
原创 数据结构与算法导论(C++)连载(二)--线性表的链表存储(结构体实现和封装类实现)
线性表存储大概有两类,一个是顺序数组存储,另一个是指针链式存储。这里主要是采用C++编程实现链表存储,优点主要是占用空间小,灵活。 一、普通结构体实现 在xxx.h文件中: ```#include"iostream"using namespace std;typedef struct LNode *List;stru...
2019-04-21 18:19:11
291
原创 数据结构与算法导论(C++)连载(一)--线性表的顺序存储(结构体实现和封装类实现)
线性表存储大概有两类,一个是顺序数组存储,另一个是指针链式存储。这里主要是采用C++编程实现顺序数组存储,优点主要是简单,易懂,操作容易。 一、普通结构体实现 在xxx.h文件中: ```#include <iostream>using namespace std;#define MAXSIZE 1024...
2019-04-20 18:32:06
297
原创 UltraISO刻录ubuntu(乌班图)linux系统
1.首先在https://www.ubuntu.com/download/desktop下载自己需要的乌班图系统2.下载UltraISO刻录软件,并打开选择上面下载的系统。3.从启动中选择写入硬盘。4.在便捷启动中选择写入新的硬盘引入扇区再选择Syslinux确定。5.最后开始刻录到U盘了。...
2019-03-14 15:24:26
3313
原创 在linux上开发嘉楠耘智K210依赖库的问题
首先放出我IDE编译时出现的问题:[ INFO] /home/wenhan/k210/KendryteIDE/LocalPackage/toolchain/bin/../libexec/gcc/riscv64-unknown-elf/8.2.0/cc1: error while loading shared libraries: libisl.so.19: cannot open shared...
2019-03-14 10:42:03
2674
原创 TensorFlow与Inception-v3
Inception-v3Inception-v3模型是由Google公司在一台配有 8 Tesla K40 GPUs,大概价值$30,000的野兽级计算机上训练了几个星期,因此不可能在一台普通的PC上训练。我们将会下载预训练好的Inception模型,然后用它来做图像分类。数据集如果自己没有数据集,可以在www.robots.ox.ac.uk/~vgg/data/上下载。代码...
2019-01-08 20:17:17
283
原创 嘉楠耘智KD233AI开发板环境搭建
嘉楠耘智的团队在2018年研发出一款7nmAI芯片K210,搭载摄像头、LCD屏等制作出KD233开发板。首先准备好硬件:一块开发板,type-c接口的USB(先上一张图)资料的下载,因为是刚出的新芯片,大多资料都是一些官方手册嘉楠耘智K210:https://kendryte.com/downloads/嘉楠耘智K210官方论坛:https://forum.kendryte....
2019-01-03 20:18:55
5566
9
原创 Linux系统调试basler Gige接口工业相机并用C++、OpenCV开发
Linux系统带有桌面操作、basler相机(GIge接口)、路由器、Python编程环境(之前的帖子有安装步骤)1.首先利用官网自带的软件调试通相机,软件下载地址:https://www.baslerweb.com/cn/sales-support/downloads/software-downloads/#type=pylonsoftware;version=all;os=windows;...
2018-12-01 14:59:03
6622
3
原创 Windows上调试basler Gige接口工业相机并用Python,Opencv开发
windows系统电脑、basler相机(GIge接口)、路由器、Python编程环境(之前的帖子有安装步骤)1.首先利用官网自带的软件调试通相机,软件下载地址:https://www.baslerweb.com/cn/sales-support/downloads/software-downloads/#type=pylonsoftware;version=all;os=windows;se...
2018-12-01 14:17:48
14001
22
原创 在linux系统上安装Eclipse运行C/C++程序
首先看自己的linux系统有没有安装好g++,sudo apt-get install g++ 该命令可以在线安装g++。下面是安装步骤:1.下载软件JDK和Eclipse c/c++版本下载地址分别:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...
2018-11-30 22:00:46
1602
1
原创 关于在深度学习中训练数据集的batch的经验总结
由于深度学习的网格很大,用来训练的数据集也很大。因此不可能一下子将所有数据集都输入到网络中,便引入了batch_size的概念,下面总结自己两种常用的调用batch的方法1、使用TensorFlow, tf.train.batch()。2、 offset = (offset + batch_size) % len(images) #每次读取batch_size图片 相当于设置...
2018-11-17 14:49:47
3636
原创 搭建简单图片分类的卷积神经网络(三)-- 模型的测试和运用
两个功能都在同一个文件中一、新建Disimage.py文件import tensorflow as tffrom PIL import Imageimport osimport numpy as npimport matplotlib.pyplot as pltfrom GetCnnData import get_filesimport CNNclasses = []n...
2018-10-31 17:42:05
2599
3
原创 搭建简单图片分类的卷积神经网络(二)-- CNN模型与训练
一、首先,简单来说CNN卷积神经网络与BP神经网络主要区别在于:1、网络的层数的多少(我这里的CNN是比较简单的,层数较少,真正应用的话,层数是很多的)。2、CNN名称来说,具有卷积运算的特点,对于大型的图片或者数量多的图片,卷积运算可以大量提高计算性能,而BP神经网络大都为全连接层,计算量本身就大,输入大量的图片,性能就不好了。二、新建CNN文件import tensorflo...
2018-10-31 17:31:47
5059
原创 搭建简单图片分类的卷积神经网络(一)-- 训练模型的图片数据预处理
一、训练之前数据的预处理主要包括两个方面1、将图片数据统一格式,以标签来命名并存到train文件夹中(假设原始图片按类别存到文件夹中)。2、对命名好的图片进行训练集和测试集的划分以及图片数据化。先对整个项目文件进行说明:项目文件夹image文件里是用来对模型测试的未处理图片(训练模型不用)。logs文件存放训练好的模型。prediction文件是image文件中图片经...
2018-10-31 17:16:55
14914
13
原创 树莓派第一次配置+装系统+远程连接+WiFi连接
硬件准备: 1、新产一片树莓派硬件板,官方SD卡 2、电源、鼠标、键盘、显示屏(HDMI接口)、网线 3、路由器(搭建好网络),一台PC机软件准备: 1、树莓派系统(推荐带有桌面操作的)下载地址:https://www.raspberrypi.org/downloads/r...
2018-10-19 18:03:19
1957
原创 树莓派上实现python程序自动杀死进程
首先,杀死进程的主要命令为ps,grep,kill这三个指令。1、第一步是获取要监控进程的pid号:def get_process_pid(name): child = os.popen("ps -ef | grep "+name).readline() response = child.split(' ') print(response) for i in...
2018-09-26 17:18:15
2815
原创 树莓派自启动python脚本文件经验总结
因为项目的需要树莓派开机自启动python文件,自己大概试了多种方法才成功。首先我这里的python脚本文件是不断循环运行的,而且要启动4个python脚本文件,我这里重点写一下网上常用的2种方法。1.桌面自启动(必须是利用桌面运行):在.config文件中的autostart文件(如果没有就新建一个)新建一个以.desktop为后缀的文件。内容为 [Desktop Entry]T...
2018-09-19 16:57:28
8531
3
原创 Windows环境下安装TensorFlow(CPU和GPU版)
前言:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,CPU/GPU资源对神经网络模型的训练很重要,应充分利用电脑的显卡资源,加快模型的训练速度。下面是对安装过程的详细讲解:1、安装好Python的开发环境(可参考我之前的文章https://blog.csdn.net/qq_28821995/article/details/81006704)我这里是在安...
2018-08-28 22:25:48
13203
5
原创 基于支持向量机的几种数据预处理的高光谱数据集分类分析
首先在这里就不介绍支持向量机和高光谱图像数据集了,本文将着重用实验代码结果来分析数据集的预处理部分和支持向量机的核函数选择。这里的数据预处理有三种,分别是PCA;LDA;PCA+LDA。支持向量机的核函数也是选择了三种,分别是线性核函数;多项式核函数;高斯核函数。这里先将.mat的数据转化为python后续算法处理的csv文件。import matplotlib.pyplot as p...
2018-07-21 14:43:01
7410
23
原创 在PyCharm搭建Python环境+Anaconda配置
图1话不多说,先上一幅图,这是已经安装好的Python软件,正在跑CNN(用的是TensorFlow,以后会详细讲解该环境的安装)。OK,现在我们正式来安装PyCharm+Anaconda,具体步骤如下:1、先下载PyCharm软件,一般我们选择社区版就可以了,能够开发大部分项目了。下载地址:https://www.jetbrains.com/pycharm/download/#section...
2018-07-17 20:55:44
758
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人