數據庫在 PHP 中的重要性
PHP 領域中缺少了一個功能強大的工具:基於語言的數學庫。在這個由兩部分組成的系列文章中,Paul Meagher 希望通過提供一個如何開發分析模型庫的示例來啟發 PHP 開發人員去開發和實現基於 PHP 的數學庫。在第 1 部分中,他演示了如何使用 PHP 作為實現語言來開發和實現簡單線性回歸(Simple Linear Regression)算法包的核心部分。在第 2 部分中,作者在該包中添加了一些功能:針對中小規模數據集的有用的數據分析工具。
簡介
與其它開放源碼語言(比如 Perl 和 Python)相比,PHP 社區缺少強有力的工作來開發數學庫。
造成這種狀況的一個原因可能是由於已經存在大量成熟的數學工具,這可能阻礙了社區自行開發 PHP 工具的工作。例如,我曾研究過一個功能強大的工具 S System,它擁有一組令人印象深刻的統計庫,專門被設計成用來分析數據集,並且在 1998 年由於其語言設計而獲得了 ACM 獎。如果 S 或者其開放源碼同類 R 僅僅是一個 exec_shell 調用,那麼為何還要麻煩用 PHP 實現相同的統計計算功能呢?有關 S System、它的 ACM 獎或 R 的更多信息,請參閱參考資料。
難道這不是在浪費開發人員的精力嗎?如果開發 PHP 數學庫的動機是出自節省開發人員的精力以及使用最好的工具來完成工作,那麼 PHP 現在的課題是很有意義的。
另一方面,出於教學動機可能會鼓勵對 PHP 數學庫的開發。對於大約 10% 的人來說,數學是個值得探索的有趣課題。對於那些同時還熟練應用 PHP 的人來說,PHP 數學庫的開發可以增強數學學習過程,換句話說,不要只閱讀有關 T 測試的章節,還要實現一個能計算相應的中間值並用標准格式顯示它們的類。
通過指導和訓練,我希望證明開發 PHP 數學庫並不是一項很難的任務,它可能代表一項有趣的技術和學習難題。在本文中,我將提供一個 PHP 數學庫示例,名為 SimpleLinearRegression,它演示了一個可以用來開發 PHP 數學庫的通用方法。讓我們從討論一些通用的原則開始,這些原則指導我開發這個 SimpleLinearRegression 類。
指導原則
我使用了六個通用原則來指導 SimpleLinearRegression 類的開發。
1.每個分析模型建立一個類。
2.使用逆向鏈接來開發類。
3.預計有大量的 getter。
4.存儲中間結果。
5.為詳細的 API 制定首選項。
6.盡善盡美並非目標。
7.讓我們更詳細地逐條研究這些指導方針。
每個分析模型建立一個類
每種主要的分析測試或過程應當有一個名稱與測試或過程名相同的 PHP 類,這個類包含了輸入函數、計算中間值和匯總值的函數和輸出函數(將中間值和匯總值用文本或圖形格式全部顯示在屏幕上)。