原创 排序算法 之 堆排序 HeapSort

介紹 堆排序在 top K 問題中使用比較頻繁。堆排序是採用二叉堆的數據結構來實現的,雖然實質上還是一維數組。二叉堆是一個近似完全二叉樹 。 二叉堆具有以下性質: - 父節點的鍵值總是大於或等於(小於或等於)任何一個子節點的鍵值

原创 sklearn 快速入門

簡介 sklearn自帶了一些標準數據集,用於分類問題的 iris 和 digits。用於迴歸問題的boston房價數據集。 導入數據集 from sklearn import datasets 自帶的數據都放在datasets裏

原创 排序算法 之 選擇排序SelectionSort

介紹 選擇排序無疑是最簡單直觀的排序。它的工作原理如下。 步驟 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。 以此類推,直到所有元素均排序完

原创 sklearn:選擇正確的模型

解決一個機器學習問題最難的一步是找到一個合適的模型,不同模型的選擇與數據類型和問題類型息息相關。 下面的流程圖就是設計來給使用者一個簡單的指導,讓使用者知道怎麼去看待問題,並根據自己的數據選擇合適的模型。 點擊下面圖中的每個模型可

原创 排序算法 之 歸併排序 MergeSort

介紹 歸併排序是採用分治法的一個非常典型的應用。歸併排序的思想就是先遞歸分解數組,再合併數組。 先考慮合併兩個有序數組,基本思路是比較兩個數組的最前面的數,誰小就先取誰,取了後相應的指針就往後移一位。然後再比較,直至一個數組爲空,

原创 字符串匹配 之 RK(Rabin-Karp)

背景 Rabin-Karp字符串匹配算法和前面介紹的《樸素字符串匹配算法》類似,也是對應每一個字符進行比較,不同的是Rabin-Karp採用了把字符進行預處理,也就是對每個字符進行對應進制數並取模運算,類似於通過某種函數計算其函數

原创 RDD Transformation——takeSample

原理 takeSample()函數和sample函數是一個原理,但是不使用相對比例採樣,而是按設定的採樣個數進行採樣,同時返回結果不再是RDD,而是相當於對採樣後的數據進行collect(),返回結果的集合爲單機的數組。 圖中,

原创 ndarray 矢量化(vectorization)

矢量化(vectorization)使得你不用編寫循環就可以對數據進行批量運算。大小相等的數組之間的任何算術運算都會將運算應用到元素級。 數組和標量運算 import numpy as np arr = np.array([[1.

原创 字符串匹配算法 之 (Horspool )Boyer-Moore-Horspool

簡介 Horspool是後綴搜索,大家都從左往右匹配,它反着來。也就是搜索已讀入文本中是否含有模式串的後綴;如果有,是多長,顯然,當後綴長度等於模式串的長度時,我們就找到了一個匹配。 Horspool算法思想:模式串從右向左進行匹

原创 排序算法 之 插入排序InsertionSort

介紹 插入排序的工作原理是,對於每個未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入。 步驟 從第一個元素開始,該元素可以認爲已經被排序 取出下一個元素,在已經排序的元素序列中從後向前掃描 如果被掃描的元素(已排序)大

原创 排序算法 之 冒泡排序 BubbleSort

介紹 冒泡排序的原理非常簡單,它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。 步驟 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對第0個到第n-1個數據做同樣的工作。這時,最大的數

原创 排序算法 之 希爾排序ShellSort

介紹 希爾排序,也稱遞減增量排序算法,實質是分組插入排序。由 Donald Shell 於1959年提出。希爾排序是非穩定排序算法。 希爾排序的基本思想是:將數組列在一個表中並對列分別進行插入排序,重複這過程,不過每次用更長的列(

原创 字符串匹配算法 之 KMP(Knuth-Morris-Pratt)

KMP簡介 Knuth-Morris-Pratt算法簡稱KMP算法。是常用的字符串匹配算法,這個算法由Donald Knuth、Vaughan Pratt、James H. Morris三人於1977年聯合發表,故取這3人的姓氏命

原创 排序算法 之 快速排序 QuickSort

介紹 快速排序通常明顯比同爲 O(nlogn) 的其他算法更快,因此常被採用,而且快排採用了分治法的思想,所以在很多筆試面試中能經常看到快排的影子。可見掌握快排的重要性。 步驟 從數列中挑出一個元素作爲基準數。 分區過程,將比

原创 Linux htop命令

簡介 htop是Linux系統下一個基本文本模式的、交互式的進程查看器,主要用於控制檯或shell中,可以替代top,或者說是top的高級版。 htop命令優點: 1) 快速查看關鍵性能統計數據,如CPU(多核佈局)、內