weka演算法
㈠ Weka研究有什麼用途
weka是數據挖掘的平台之一,weka中集成了很多演算法,主要用於數據挖掘方面,例如人臉識別,文本識別以及基因工程等等。演算法不同,效果不同,這就要仔細研究了。
㈡ 我是weka新手,我下載數據集後,用weka中的id3演算法來進行分類,結果不能看到決策樹,是怎麼回事啊
weka的ID3演算法是會輸出一個決策樹的,只不過那隻是中間計算時輸出的結果。同時還會輸出很多其他的統計結果。
要看看它有沒有報錯。 數據集的屬性是不是都是離散型的。如果有些是實數型,如17.1,17.2,1.735,17.2....這樣就不符合要求,無法生成合理的決策樹。
以下是一個簡單的weka輸出決策樹:
age = youth
| student = no: no
| student = yes: yes
age = middle_aged: yes
age = senior
| credit_rating = fair: yes
| credit_rating = excellent
| | income = high: null
| | income = medium: no
| | income = low: no
㈢ Weka里可以直接使用TAN演算法嗎還是需要自己添加本人作畢業設計剛剛接觸Weka,求高人指點!
沒有的,Weka中只自帶了一些典型的演算法,像SimpleKmeans之類的。但是可以把演算法集成到Weka中,不知道你最後是用Weka的GUI演示還是用Weka的API開發,前者的話麻煩一點。我做畢設也剛好用到Weka,你也應該是做數據挖掘的東西的吧!希望對你有幫助。
㈣ 請教一下WEKA中ID3和C45演算法如何運行
您所謂的「具體實現」就是用這兩種演算法來訓練分類模型,完成分類任務吧......用weka explorer選擇您手頭要用來做實驗的訓練集、測試集以及相應的分類演算法,直接跑一遍...或者在自己的代碼里用weka的api寫幾行以完成同樣的工作...很簡單的哈,網上很多這樣的例子,您隨便找一個看兩眼就明白了。
㈤ 如何學習在eclipse工程中對weka演算法的調用
eka是很好用的機器學習庫,這里就不詳細介紹了。
言歸正傳,要使用程序方式使用weka,步驟如下:
一、在eclipse里新建一個java project:
1. 建立工程:單擊菜單中file->new->java project,在彈出對話框的project name中起任意一個名字,此處假設是wekaTest。單擊Finish按鈕(在對話框底部)。
2. 建立package:在package Explorer中找到剛才新建的工程,在其上右鍵->New->package。在Name文本框裡面輸入名稱,此處假設為Test。單擊Finish按鈕。
3. 建立程序文件:在剛才新建的package上面右鍵->New->class,選中public static void main(String[] args)多選框,單擊Finish。
二、在該工程中添加weka的引用:
1. package Explorer中工程名上右鍵,選擇彈出菜單最後一項properties->在左面選中java Build Path->在右面的Library頁面->單擊Add External JARs…->瀏覽weka所在目錄,將weka.jar添加進來,然後單擊ok。
㈥ weka分類演算法選項不可用是怎麼回事
兩種原因1、你的weka出問題了;
2、你的數據不適合分類,自然分類選項會是灰色的;
㈦ 如何使用Java Weka開源項目,實現J48決策樹、支持向量機演算法,在10個UCI數據集上對這兩個演算法進行性能
publicstaticvoidRegular()throwsException{
Fileinputfile=newFile("F:\weka\eucalyptus_Train.arff");
ArffLoaderloader=newArffLoader();
loader.setFile(inputfile);
InstancesinsTrain=loader.getDataSet();
insTrain.setClassIndex(insTrain.numAttributes()-1);
inputfile=newFile("F:\weka\eucalyptus_Test.arff");
loader.setFile(inputfile);
InstancesinsTest=loader.getDataSet();
insTest.setClassIndex(insTest.numAttributes()-1);
doublesum=insTest.numInstances();
intright=0;
Classifierclas=newJ48();
//Classifierclas=newweka.classifiers.bayes.BayesNet();
clas.buildClassifier(insTrain);
for(inti=0;i<sum;i++){
if(clas.classifyInstance(insTest.instance(i))==insTest.instance(i).classValue()){
right++;
}
System.out.println(clas.classifyInstance(insTest.instance(i))+":"+insTest.instance(i).classValue());
}
System.out.println("分類准確率:"+right/sum);
}
svm的話,要用一個wlsvm的包。 代碼是一樣的,就是Classifier class= new J48()這里要用svm的實例
㈧ weka 代碼 演算法 j48 決策樹 c4.5
我想你應該是想通過這個頁面的url來得到這個網頁裡面的某些數據把。用HttpClient 。
下面我這個方法是得到搜狗頁面命中多少條記錄的代碼。
public static void main (String args[]){
String sRequestUrlString="http://www.sogou.com/web?query=ondblclick
%3D%22%22";
GetMethod getMethod = new GetMethod(sRequestUrlString);
HttpClient client = new HttpClient();
client.setConnectionTimeout(1000 * 60);
int status=0;
try {
status = client.executeMethod(getMethod);
} catch (HttpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sResponse="";
if(status==HttpStatus.SC_OK) {
sResponse=(getMethod.getResponseBodyAsString());
} else {
System.out.println("檢索失敗");
}
getMethod.releaseConnection();
String regExData = "找到 ([,\\d]*) 個網頁";
if(sResponse!=null && sResponse.trim().length()>0) {
Pattern pattern = Pattern.compile(regExData);
Matcher matcher = pattern.matcher(sResponse);
if(matcher.find()) {
if(matcher.groupCount()>=1) {
int iTmpInteger =
Integer.parseInt(matcher.group(1).replaceAll(",",""),10);
System.out.println("找到"+iTmpInteger+"個網頁");
}
}
}
}
這段測試代碼是來測試搜狗的,String sRequestUrlString="http://www.sogou.com/web?
query=ondblclick%3D%22%22";
這里是拼寫好的檢索的url,
sResponse=(getMethod.getResponseBodyAsString());這個是得到本頁面的源文件,然後通過
String regExData = "找到 ([,\\d]*) 個網頁";正則表達式來獲取([,\\d]*) ,得到命中的條數。
㈨ 如何在WEKA中添加自己的演算法
1. 編寫新演算法,所編寫的新演算法必須符合Weka 的介面標准。在此以從Weka中文站上下載的一個演算法(模糊C均值聚類演算法:FuzzyCMeans)的添加為例說明其具體過程。
2. 由於FuzzyCMeans是聚類演算法,所以直接將FuzzyCMeans.java 源程序考到 weka.clusterers 包下
3. 再修改weka.gui.GenericObjectEditor.props ,在#Lists the Clusterers I want to choose from的weka.clusterers.Clusterer=\下加入:weka.clusterers.FuzzyCMeans
4. 相應的修改weka.gui.GenericPropertiesCreator.props ,此去不用修改,因為包weka.clusterers已經存在,若加入新的包時則必須修改這里,加入新的包
我試了一下,這樣加入之後,重新編譯,運行後,可以在weka的Explorer界面上的Cluster選項卡中的聚類演算法中找到剛剛新添加的FuzzyCMeans演算法。
添加過程簡單吧!關鍵問題是要弄清楚Weka的內核以及其介面標准,然後編寫出符合此規范的新演算法。