數(shù)學
摘要: 聚類可以見我以前寫過的聚類分析的文章。
回歸是一個統(tǒng)計中非常重要的概念了。在Commons Math庫中有一個regression的子包轉(zhuǎn)么實現(xiàn)了線性回歸的一些基本類型。在regression包中,有個基本接口就是MultipleLinearRegression,這個接口表達y=X*b+u這樣的基本線性回歸式。線性回歸是利用稱為線性回歸方程的最小二乘函數(shù)對一個或多個自變量和因變量之間關(guān)系進行建模的一種回歸分析。簡單看這個公式,y代表了一個n維的列向量(回歸子),X代表了[n,k]大小的觀測值矩陣(回歸量),b是k維的回歸參數(shù),u是一個n維的剩余誤差?;貧w分析干什么用的?具體講就是預測。我們在數(shù)據(jù)挖掘中定義,定性的分析叫做分類,而定量的分析叫做回歸?;貧w就是根據(jù)已有的觀察值去預測未來的一個定量的指標。記得前一段阿里云到學院來做技術(shù)交流,講到阿里和淘寶通過數(shù)據(jù)分析對中國商品交易(還是具體什么貿(mào)易,忘記了,尷尬)的預測就是工程師做的一個簡單的線性回歸分析,模型雖然簡單,但是后來與實際數(shù)據(jù)一比較,預測值與實際值的曲線基本吻合。
閱讀全文
摘要: 概率統(tǒng)計最基本的前提就是有數(shù)據(jù),而我們做模擬或者測試時總會用到大量的隨機數(shù)據(jù)。我們知道絕對的隨機是做不到的,但是可以利用算法來實現(xiàn)偽隨機數(shù)的生成。Commons Math庫提供了一個random的包,其中定義實現(xiàn)了很多可以用來生成隨機數(shù)的類和接口。random包中定義了5個接口,分別是EmpiricalDistribution、NormalizedRandomGenerator、RandomData、RandomGenerator和RandomVectorGenerator。
閱讀全文
摘要: 我們講到數(shù)學的計算,難免會遇到分數(shù)形式,因為實數(shù)的定義就是可以表示為一個分數(shù)的形式的數(shù),而加入虛數(shù)的復數(shù)也是偶爾會遇到的。Commons Math包中的fraction和complex包就分別提供了方法來表示這兩種數(shù)。
閱讀全文
摘要: 概率分布是概率論的一個基礎(chǔ)。
在Commons Math包中也專門有一個子包對概率分布進行了封裝實現(xiàn)。在distribution包中,定義了一個基本接口Distribution。該接口只有兩個方法,一個是double cumulativeProbability(double x),一個是double cumulativeProbability(double x0, double x1)。前者對于服從某種分布的隨機變量X,返回P(X<=x);后者則返回P(x0<=X<=x1)。正如其名所示,這樣也就得到了概率。
閱讀全文
摘要: 函數(shù)方程求解,其實是函數(shù)的零點問題,也就是說函數(shù)的曲線與X軸的交點。對于線性方程,我們可以輕易的求解,對于線性方程組,利用前面講過的的矩陣分解方法也可以求解。那么對于函數(shù)表達的很多非線性方程的求解。我們要依賴數(shù)值算法。Commons Math包中專門有一個analysis.solver包來解決這個問題。
閱讀全文
摘要: 積分可以說是最常見的了,在函數(shù)的一節(jié)中我們講過函數(shù)的微分和給定變量求值,這里我們講講通過函數(shù)求積分,具體的數(shù)值積分方法和應用。什么是數(shù)值積分?在數(shù)值分析中,數(shù)值積分是計算定積分數(shù)值的方法和理論。在數(shù)學分析中,給定函數(shù)的定積分的計算不總是可行的。許多定積分不能用已知的積分公式得到精確值。數(shù)值積分是利用黎曼積分等數(shù)學定義,用數(shù)值逼近的方法近似計算給定的定積分值。借助于電子計算設(shè)備,數(shù)值積分可以快速而有效地計算復雜的積分。Commons Math中的積分包analysis.integration提供了幾種數(shù)值積分的實現(xiàn),UnivariateRealIntegrator接口是積分包中的基礎(chǔ)接口,該接口繼承了math包中的ConvergingAlgorithm接口。具體定義了一系列方法,其中比較主要的有double integrate(UnivariateRealFunction f, double min, double max)方法,這個方法就是通過min和max設(shè)定積分區(qū)間,通過f設(shè)定被積函數(shù),最后返回定積分值的方法。可以看到這個接口的實現(xiàn)是針對單變量實函數(shù)的。多元積分的實現(xiàn),目前還沒有看
閱讀全文
摘要: 在Commons Math中的analysis.interpolation包中有所有的與函數(shù)插值相關(guān)的類和接口定義。這一篇主要從這個包分析,來研究一下函數(shù)插值的應用。在2.1的api doc中添加了很多新的接口和類實現(xiàn),但是2.0的source code里還是只有少量的實現(xiàn)。這里以2.0的source code為標準,輔助以2.1的api doc(其實這都是不影響的)。
插值是數(shù)學領(lǐng)域數(shù)值分析中的通過已知的離散數(shù)據(jù)求未知數(shù)據(jù)的過程或方法。給定n個離散數(shù)據(jù)點(稱為節(jié)點)(xk,yk),k= 1,2,...,n。對于,求x所對應的y的值稱為內(nèi)插。f(x)為定義在區(qū)間[a,b]上的函數(shù)。x1,x2,x3...xn為[a,b]上n個互不相同的點,G為給定的某意函數(shù)類。若G上有函數(shù)g(x)滿足: g(xi) = f(xi),k = 1,2,...n
則稱g(x)為f(x)關(guān)于節(jié)點x1,x2,x3...xn在G上的插值函數(shù)
閱讀全文
摘要: 在Commons Math中的analysis.polynomials包中有所有的與多項式函數(shù)相關(guān)的類和接口定義。這一篇主要從這個包分析,來研究一下多項式函數(shù)的應用。
閱讀全文
摘要: 向量和矩陣可以說是線性代數(shù)的代表,那么返還到高等數(shù)學中,函數(shù)就是我們最常用到的單位了,還有各種微積分和其他應用,都是建立在變量、函數(shù)的基礎(chǔ)上的。Commons Math庫的下一個研讀部分就是針對函數(shù)這一塊。在Commons Math中也單獨有一個analysis包完成這部分實現(xiàn)。
閱讀全文
摘要: 補充上一次的矩陣知識,這次主要講講矩陣的一些分解運算——Matrix Decomposition:
矩陣分解主要有三種方式:LU分解,QR分解和奇異值分解。當然在Math的linear包中提供了對應的接口有CholeskyDecomposition、EigenDecomposition、LUDecomposition、QRDecomposition和SingularValueDecomposition這5種分解方式。
閱讀全文
摘要: 今天來第二篇:矩陣——Matrix。
Math包org.apache.commons.math.linear里對矩陣的表示是有一個層次結(jié)構(gòu)的。
最頂層的AnyMatrix是一個基本的interface。下面有3個sub interface:BigMatrix, FieldMatrix
, RealMatrix。而每個sub interface分別被相應的矩陣類實現(xiàn)。整個矩陣的層次結(jié)構(gòu)也就出來了。不過其中的BigMatrix已經(jīng)不用了。被Array2DRowFieldMatrix替代了。
閱讀全文