熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Javascript >> 正文

對OpenMiner進行了一系列手術

2013-11-23 17:57:02  來源: Javascript 

  OpenMiner已經成為了sourceforge的approval項目與此同時我們也開始緊張地對OpenMiner進行了一系列的外科手術我現在做的主要是服務器部分的裁剪盡量把OpenMiner的核心做得更加簡單更加具有擴展性而OpenMiner現在還沒有可視化的客戶端另外一個同學grand現在也開始加緊趕制OpenMiner的客戶端我們的客戶端打算仿造Yale

  首先的第一個手術就是減掉闌尾 之前在給教務處做決策系統的時候為了趕進度OpenMiner過於依賴了Oracle數據庫各種數據集的提取以及挖掘模型的存取都是基於Oracle的JDBC來訪問的而Oracle的JDBC特別是在處理BLOB數據塊的時候又和標准的JDBC不兼容於是搞得代碼很不具備通用性現在的OpenMiner不僅是需要對ORACLE的很好支持同時還要能夠對各個方面的數據集進行很好的訪問當然訓練數據集都是只讀也就是OLAP作為一個數據分析我希望設計處理的服務程序不僅能夠從數據庫中提取數據還希望能夠從各種文件格式(excel xml等)以及遠程的Socket輸入流來獲取訓練數據集減掉了舊的Oracle處理模塊後需要新增加的就是一個比較齊全的輸入數據抽象層了采用設計模式中的抽象工廠Abstract Factory的方式來實現這樣對於數據挖掘的算法模塊來說就只有一個InputDataSet輸入數據集的接口訓練數據就只能從這裡面來提取根本不用去理會這個InputDataSet是一個什麼樣的數據來源和怎麼樣創建的於是乎文件數據數據庫數據Socket流輸入數據就能很好地統一到InputDataSet接口下了

  其次關於使用挖掘模型的接口函數統統從Miner類刪除因為如何使用一個挖掘完成的模型是根據應用程序Application來決定的如果OpenMiner來做並不見得做得能用而且使用一個模型的方法千變萬化OpenMiner做起來也麻煩於是最好的辦法就是不做統統刪除!

  最後我考慮將挖掘模型的存儲訪問管理放在客戶端來進行原因很簡單OpenMiner就只做Data Mining的工作不做Data Mining以外的任何工作這裡所謂的客戶端並不一定就是用戶實用的客戶端也可能是應用系統只是從OpenMiner服務提供者來說的客戶端的意思如何管理挖掘模型Model這個問題本身並不能輕率因為現實企業應用系統中可能挖掘模型數量成百上千如此龐大的挖掘結果模型一般的文件系統並不見得高效而應該放在數據庫的針對各種數據庫的訪問那麼就成了一個問題同時挖掘模型也可能存在安全性的問題要讓OpenMiner去這樣復雜的一項工作很難做得好既然做不好最好的辦法就是不做統統刪除

  做了這些過後OpenMiner的核心服務器的手術基本上可以算完成了剩下的就是客戶端的事情了我們現在的這個客戶端功能很大把以前本該是服務器做的模型管理的工作都移交到了客戶端來做於是grand現在也忙起來關於客戶端的開發我推薦使用NetBeans RC來開發因為Eclipse的VE插件做得太老火了經常出問題而且又慢又兼容性也不好(的VE都不兼容)而NetBeans本身就自帶了可視化的界面開發功能速度和穩定性都比Eclipse那種外部插件的好雖然Eclipse一度成為IDE的典范但是SUN的新秀NetBeans也有它不錯的有點隨便說一下NetBeans也是免費開源的可以隨便下載


From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25412.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.