[置顶] 机器学习算法笔记

最近有两个多月的时间没来更新博客,是一直在忙着一件事——将博客中的一些文章整理成书。一开始写博客,给自己的文章建了一个响亮的标题《简单易学的机器学习算法》,但是发现写着写着,每一个算法也变得没那么简单易学,因此想对这些零散的知识点做一次全面的整理。最初是一年前有了这个念头,一直没有去实践,自己给自己找了很多的借口,今年8月份,这个念头又一次那么强烈的袭上心头,没有太多思考,说干就干。。。决定了,但是...
阅读(998) 评论(5)

[置顶] 新的10大数据挖掘、机器学习算法

一、原来的10大算法 2006年,IEEE的数据挖掘会议选出了10大算法:[见点击打开链接] C4.5k-MeansSupport Vector Machines(SVM)AprioriExpectation Maximization(EM)PageRankAdaBoostk-Nearest Neighbors(kNN)Naive BayesClassification and Regre...
阅读(3056) 评论(0)

机器学习算法实现解析——libFM之libFM的训练过程之Adaptive Regularization

本节主要介绍的是libFM源码分析的第五部分之二——libFM的训练过程之Adaptive Regularization的方法。5.3、Adaptive Regularization的训练方法5.3.1、SGD的优劣在“机器学习算法实现解析——libFM之libFM的训练过程之SGD的方法”中已经介绍了基于SGD的FM模型的训练方法,SGD的方法的最大优点是其训练过程很简单,只需在计算的过程中求解损...
阅读(245) 评论(0)

机器学习算法实现解析——libFM之libFM的训练过程之SGD的方法

本节主要介绍的是libFM源码分析的第五部分之一——libFM的训练过程之SGD的方法。5.1、基于梯度的模型训练方法在libFM中,提供了两大类的模型训练方法,一类是基于梯度的训练方法,另一类是基于MCMC的模型训练方法。对于基于梯度的训练方法,其类为fm_learn_sgd类,其父类为fm_learn类,主要关系为: fm_learn_sgd类是所有基于梯度的训练方法的父类,其具体的代码如...
阅读(1275) 评论(0)

机器学习算法实现解析——libFM之libFM的训练过程概述

本节主要介绍的是libFM源码分析的第四部分——libFM的训练。FM模型的训练是FM模型的核心的部分。4.1、libFM中训练过程的实现在FM模型的训练过程中,libFM源码中共提供了四种训练的方法,分别为:Stochastic Gradient Descent(SGD),Adaptive SGD(ASGD),Alternating Least Squares(ALS)和Markov Chain...
阅读(869) 评论(0)

机器学习算法实现解析——libFM之libFM的模型处理部分

本节主要介绍的是libFM源码分析的第三部分——libFM的模型处理。3.1、libFM中FM模型的定义libFM模型的定义过程中主要包括模型中参数的设置及其初始化,利用模型对样本进行预测。在libFM中,首先定义FM模型,在fm_model类中实现对FM模型的定义,fm_model类在“\libfm-1.42.src\src\fm_core\fm_model.h”中。在定义fm_model类之前,...
阅读(906) 评论(0)

Hive——巧用transform处理复杂的字符串问题

相比于Map-Reduce,Hive对数据的处理相对简单,但是Hive本身提供的函数,对于处理复杂的字符串问题,就显得不是很方便,此时,可以借助transform,引入外界的Python程序对字符串进行处理。...
阅读(207) 评论(0)

梯度下降优化算法综述

本文翻译自Sebastian Ruder的“An overview of gradient descent optimization algoritms”,作者首先在其博客中发表了这篇文章,其博客地址为:An overview of gradient descent optimization algoritms,之后,作者将其整理完放在了arxiv中,其地址为:An overview of grad...
阅读(3627) 评论(2)

C/C++——排序

在C/C++中的排序,使用到的函数主要有: sort() qsort() 下面详细分析sort()函数和qsort()函数。1、sort()函数sort()是STL中提供的算法,头文件为:#include using namespace std;函数原型如下:template void sort ( RandomAcce...
阅读(285) 评论(0)

机器学习算法实现解析——word2vec源码解析

在阅读本文之前,建议首先阅读“简单易学的机器学习算法——word2vec的算法原理”,掌握如下的几个概念: 什么是统计语言模型 神经概率语言模型的网络结构 CBOW模型和Skip-gram模型的网络结构 Hierarchical Softmax和Negative Sampling的训练方法 Hierarchical Softmax与Huffman树的关系 有了如上的一些概念,接下来就可以去读word...
阅读(4733) 评论(0)

Linux C 编程——互斥锁mutex

1、多线程的问题引入多线程的最大的特点是资源的共享,但是,当多个线程同时去操作(同时去改变)一个临界资源时,会破坏临界资源。如利用多线程同时写一个文件:#include #include #include const char filename[] = "hello";void* thread(void *id){ int...
阅读(520) 评论(0)

Linux C 编程——多线程

线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。与多进程相比,多进程具有多进程不具备的一些优点,其最重要的是:对于多线程来说,其能够比多进程更加节省资源。1、线程创建在Linux中,新建的线程并不是在原先的进程中,而是系统通过一个系统调用clone()。该系统copy了一个和原先进程完全一样的进程,并在这个进程中执行线程函数。在Linux中,通过函数pthread_create()函数实...
阅读(437) 评论(0)

C/C++——柔性数组

1、问题来源在博文数据结构和算法——kd树中,在构建kd树的过程中,有如下的一段代码:#define MAX_LEN 1024typedef struct KDtree{ double data[MAX_LEN]; // 数据 int dim; // 选择的维度 struct KDtree *left; // 左子树 struct KD...
阅读(275) 评论(0)

简单易学的机器学习算法——梯度提升决策树GBDT

梯度提升决策树(Gradient Boosting Decision Tree,GBDT)算法是近年来被提及比较多的一个算法,这主要得益于其算法的性能,以及该算法在各类数据挖掘以及机器学习比赛中的卓越表现,有很多人对GBDT算法进行了开源代码的开发,比较火的是陈天奇的XGBoost和微软的LightGBM。一、监督学习1、监督学习的主要任务监督学习是机器学习算法中重要的一种,对于监督学习,假设有mm...
阅读(1348) 评论(0)

数据结构和算法——Huffman树和Huffman编码

Huffman树是一种特殊结构的二叉树,由Huffman树设计的二进制前缀编码,也称为Huffman编码在通信领域有着广泛的应用。在word2vec模型中,在构建层次Softmax的过程中,也使用到了Huffman树的知识。在通信中,需要将传输的文字转换成二进制的字符串,假设传输的报文为:“AFTERDATAEARAREARTAREA”,现在需要对该报文进行编码。一、Huffman树的基本概念在二叉...
阅读(429) 评论(0)

数据结构和算法——kd树

一、K-近邻算法K-近邻算法是一种典型的无参监督学习算法,对于一个监督学习任务来说,其mm个训练样本为:{(X(1),y(1)),(X(2),y(2)),⋯,(X(m),y(m))}\left \{ \left ( X^{\left ( 1 \right )},y^{\left ( 1 \right )} \right ),\left ( X^{\left ( 2 \right )},y^{\lef...
阅读(1163) 评论(0)

数据结构和算法——二叉排序树

一、二叉排序树对于无序的序列“62,58,88,47,73,99,35,51,93,29,37,49,56,36,48,50”,是否存在一种高效的查找方案,使得能够快速判断在序列中是否存在指定的数值?二叉排序树是一种简单,高效的数据结构。 二叉排序树,又称为二叉查找树。二叉排序树或者是一棵空树,或者是具有以下性质的二叉树:若其左子树不为空,则左子树上的所有节点的值均小于它的根结点的值;若其右子树...
阅读(236) 评论(0)

数据结构和算法——二叉树

二叉树是使用较多的一种树形结构,如比较经典的二叉排序树,Huffman编码等,都使用到了二叉树的结构,同时,在机器学习算法中,基于树的学习算法中也大量使用到二叉树的结构,因此,我们有必要对二叉树的结构有比较详细的了解和掌握。一、二叉树的基本概念1、二叉树的概念 二叉树(Binary Tree)是包含nn个节点的有限集合,该集合或者为空集(此时,二叉树称为空树),或者由一个根节点和两棵互不相交的、...
阅读(438) 评论(0)

简单易学的机器学习算法——K-Means++算法

K-Means++...
阅读(1332) 评论(1)

MATLAB技巧——sort和sortrows函数

sort函数 sortrows函数...
阅读(866) 评论(0)

Web Spider实战1——简单的爬虫实战(爬取"豆瓣读书评分9分以上榜单")

1、Web Spider简介Web Spider,又称为网络爬虫,是一种自动抓取互联网网页信息的机器人。它们被广泛用于互联网搜索引擎或其他类似网站,以获取或更新这些网站的内容和检索方式。它们可以自动采集所有其能够访问到的页面内容,以供搜索引擎做进一步处理(分检整理下载的页面),而使得用户能更快的检索到他们需要的信息。2、一个简单的网络爬虫案例作者在浏览网页的时候看到豆瓣书单的网页(首页),如下所示:...
阅读(2548) 评论(0)

机器学习算法实践——K-Means算法与图像分割

一、理论准备1.1、图像分割图像分割是图像处理中的一种方法,图像分割是指将一幅图像分解成若干互不相交区域的集合,其实质可以看成是一种像素的聚类过程。通常使用到的图像分割的方法可以分为: 基于边缘的技术 基于区域的技术 基于聚类算法的图像分割属于基于区域的技术。1.2、K-Means算法K-Means算法是基于距离相似性的聚类算法,通过比较样本之间的相似性,将形式的样本划分到同一个类别中,K-Mean...
阅读(8232) 评论(13)
149条 共8页1 2 3 4 5 ... 下一页 尾页
    个人声明

    欢迎大家加群,探讨与机器学习相关技术相关的话题:


    101620539


    博客的主要内容主要是自己的学习笔记,并结合个人的理解,供各位在学习过程中参考,若有疑问,欢迎提出;若有侵权,请告知博主删除,原创文章转载还请注明出处。

    个人资料
    • 访问:760442次
    • 积分:8148
    • 等级:
    • 排名:第2270名
    • 原创:143篇
    • 转载:1篇
    • 译文:1篇
    • 评论:384条
    博客专栏
    联系我
    Email:zhaozhiyong1989@126.com

    最新评论