原创 圖解Java NIO Buffer

Buffer四個基本屬性 1、capacity:能夠容納的最大元素數目,創建時設定並不能更改2、limit: buffer中有效位置數目3、position: 下一個讀或者寫的位置4、mark:  用於記憶的標誌位,配合reset()使用

原创 社區發現算法(一)

圖分割方法大多是基於迭代二分法的,基本思想是將圖分割成兩個子圖,然後迭代,最後得出要求的子圖數。經典的算法有Kernighan-Lin算法和譜二分算法。 K-L(Kernighan-Lin)算法 K-L(Kernighan-Lin)

原创 社區發現算法(二)

GN算法 本算法的具體內容請參考Finding and evaluating community structure in networks(Newman and Girvan)。 重要概念 邊介數(betweenness):網絡中任

原创 社區發現算法(三)

派系過濾CPM方法(clique percolation method)用於發現重疊社區,派系(clique)是任意兩點都相連的頂點的集合,即完全子圖。 在社區內部節點之間連接密切,邊密度高,容易形成派系(clique)。因此,社區內部

原创 社區發現算法(四)

標籤傳播算法基本思想是通過標記節點的標籤信息預測未標記節點的標籤情況。節點之間的標籤傳播主要依照標籤相似度進行,在傳播過程中,未標記的節點根據鄰接點的標籤情況來迭代更新自身的標籤信息,如果其鄰接點與其相似度越相近,則表示對其所標註的影響權

原创 GBDT(Gradient Boost Decision Tree)

GBDT,全稱Gradient Boosting Decision Tree,叫法比較多,如Treelink、 GBRT(Gradient Boost Regression Tree)、Tree Net、MART(Multiple Add

原创 Apache Commons IO 示例

Apache Commons IO是由Apache Foundation維護的java庫,它提供了多種類庫使開發者能夠很容易地完成一些常見的任務,簡化那些被反覆的樣板化的代碼。這個類庫的重要性是巨大的,因爲它非常成熟,並且由有經驗

原创 Top 50 Java 線程併發的面試問題

問題1 什麼是executor框架 Executor and ExecutorService用於以下場景: - 創建線程 - 啓動線程 - 管理整個線程的生命週期 Executor創建線程池並管理線程池中線程的

原创 非負矩陣分解NMF

非負矩陣分解NMF(Non-negative Matrix Factorization)是一種矩陣分解的方法,在圖像分析、文本聚類、數據挖掘、語音處理等方面得到了廣泛應用。 定義:給定非負矩陣V(m * n)及正整數k < min{m,

原创 SVM中的Kernel技術

對於SVM的基礎知識,可以參考這篇博客《支持向量機SVM學習筆記》,本博客主要討論SVM中kernel的使用。 SVM中原始問題和對偶問題的定義 其中N爲訓練樣本點的個數,d爲特徵向量x的維度。對於原始問題需要學習d個參數,對於對偶問題

原创 數據降維

譯文 七大數據降維算法 原文 7 Machine Learning techniques for Dimensionality Reduction 

原创 ThreadPoolExecutor運行原理

線程池用來管理工作線程,它包含一個隊列用來存放等待執行的任務。java的java.util.concurrent.Executors提供了實現java.util.concurrent.Executor這個接口的方法,用來創建線程池

原创 Mesos:數據中心細粒度的資源共享平臺

背景 Hadoop集羣只能運行一種單一的MapReduce應用程序,這使得它很難運行不符合map-reduce模型的應用程序。如果要想在Hadoop集羣上安裝Spark應用程序,那麼必須爲Spark安裝一套全新的worker和ma

原创 社區劃分的標準--模塊度

在社區發現算法中,幾乎不可能先確定社區的數目,於是,必須有一種度量的方法,可以在計算的過程中衡量每一個結果是不是相對最佳的結果。 模塊度(Modularity)用來衡量一個社區的劃分是不是相對比較好的結果。一個相對好的結果在社區內部的節點

原创 像原生C/C++,序列化Java對象

你曾經希望能夠將Java對象object快速地轉化爲字節流,就像原生語言C/C++?如果你使用標準的Java Serialization,你會對它的性能感到非常失望。Java Serialization針對不同的使用目的,而不僅僅