原创 Hive——巧用transform處理複雜的字符串問題

相比於Map-Reduce,Hive對數據的處理相對簡單,但是Hive本身提供的函數,對於處理複雜的字符串問題,就顯得不是很方便,此時,可以藉助transform,引入外界的Python程序對字符串進行處理。 transform

原创 深度學習算法原理——RCNN

相比較於圖像分類來說,目標檢測(Object Detection)不僅需要標記出圖像中的物體(通常使用邊框標記),同時需要指出該物體是什麼。一般比較直觀的想法包括以下的三個步驟: 得到目標的可能區域,稱之爲候選區域; 使用圖像特

原创 推薦系統——(論文閱讀筆記)YouTube推薦中的深層神經網絡

這篇文章是閱讀YouTube的《Deep Neural Networks for YouTube Recommendations》後的一點總結,這篇文章值得詳細閱讀,因此將其中的核心點整理出來。 文章的重點 1、總結推薦系統

原创 機器學習算法實現解析——word2vec源碼解析

在閱讀本文之前,建議首先閱讀“簡單易學的機器學習算法——word2vec的算法原理”(目前還沒發佈),掌握如下的幾個概念: 什麼是統計語言模型 神經概率語言模型的網絡結構 CBOW模型和Skip-gram模型的網絡結構 Hier

原创 Linux C 編程——互斥鎖mutex

1、多線程的問題引入 多線程的最大的特點是資源的共享,但是,當多個線程同時去操作(同時去改變)一個臨界資源時,會破壞臨界資源。如利用多線程同時寫一個文件: #include <stdio.h> #include <pthread.

原创 機器學習算法實現解析——libFM之libFM的訓練過程之Adaptive Regularization

本節主要介紹的是libFM源碼分析的第五部分之二——libFM的訓練過程之Adaptive Regularization的方法。 5.3、Adaptive Regularization的訓練方法 5.3.1、SGD的優劣 在“機器

原创 挑戰數據結構與算法面試題——80題全解析(三)

題目來源“數據結構與算法面試題80道”。這是第三部分,包含其中的第11題到第15題。 在此給出我的解法,如你有更好的解法,歡迎留言。 問題分析:涉及的知識點是二叉樹的遍歷,遍歷的方法主要有: 先序遍歷 中序遍歷 後序

原创 梯度下降優化算法綜述

本文翻譯自Sebastian Ruder的“An overview of gradient descent optimization algoritms”,作者首先在其博客中發表了這篇文章,其博客地址爲:An overview

原创 機器學習算法實現解析——libFM之libFM的訓練過程之SGD的方法

本節主要介紹的是libFM源碼分析的第五部分之一——libFM的訓練過程之SGD的方法。 5.1、基於梯度的模型訓練方法 在libFM中,提供了兩大類的模型訓練方法,一類是基於梯度的訓練方法,另一類是基於MCMC的模型訓練方法。對

原创 C/C++——排序

在C/C++中的排序,使用到的函數主要有: sort() qsort() 下面詳細分析sort()函數和qsort()函數。 1、sort()函數 sort()是STL中提供的算法,頭文件爲: #include<algorit

原创 Linux C 編程——多線程

線程是計算機中獨立運行的最小單位,運行時佔用很少的系統資源。與多進程相比,多進程具有多進程不具備的一些優點,其最重要的是:對於多線程來說,其能夠比多進程更加節省資源。 1、線程創建 在Linux中,新建的線程並不是在原先的進程中,

原创 機器學習算法實現解析——libFM之libFM的模型處理部分

本節主要介紹的是libFM源碼分析的第三部分——libFM的模型處理。 3.1、libFM中FM模型的定義 libFM模型的定義過程中主要包括模型中參數的設置及其初始化,利用模型對樣本進行預測。在libFM中,首先定義FM模型,在

原创 挑戰數據結構與算法面試題——80題全解析(一)

題目來源“數據結構與算法面試題80道”。這是第一部分,包含其中的第1題到第5題。 在此給出我的解法,如你有更好的解法,歡迎留言。 問題分析:二叉查找樹是一種二叉樹的結構,其中,根節點的值大於左子樹的值,小於右子樹的值。

原创 C/C++——柔性數組

1、問題來源 在博文數據結構和算法——kd樹中,在構建kd樹的過程中,有如下的一段代碼: #define MAX_LEN 1024 typedef struct KDtree{ double data[MAX_L

原创 算法類面試題解析——美團2016校招:棋子翻轉

題目來自伯樂在線,歡迎有不同答案的同學來一起討論。 分析: 本題主要是二維數組的操作,對指定的位置上的數字進行翻轉,其具體過程如下所示: 其基本的過程如下: 遍歷數組二,如上圖中的紅色位置: 找到其周圍的四個位置,注意