<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java apriori

    文檔

    java apriori

    Apriori算法是第一個關聯規則挖掘算法,它利用逐層搜索的迭代方法找出數據庫中項集的關系,以形成規則,其過程由連接(類矩陣運算)與剪枝(去掉那些沒必要的中間結果)組成。
    推薦度:
    導讀Apriori算法是第一個關聯規則挖掘算法,它利用逐層搜索的迭代方法找出數據庫中項集的關系,以形成規則,其過程由連接(類矩陣運算)與剪枝(去掉那些沒必要的中間結果)組成。

    java apriori是什么,讓我們一起了解一下?

    Apriori算法是第一個關聯規則挖掘算法,它利用逐層搜索的迭代方法找出數據庫中項集的關系,以形成規則,其過程由連接(類矩陣運算)與剪枝(去掉那些沒必要的中間結果)組成。

    Apriori算法的描述如下:

    (1)掃描全部數據,產生候選1-項集的集合C1。

    (2)根據最小支持度,由候選1-項集的集合C1產生頻繁1-項集的集合L1。

    (3)對k>1,重復執行步驟(4)、(5)、(6)。

    (4)由Lk執行連接和剪枝操作,產生候選(k+l)-項集的集合Ck+1。

    (5)根據最小支持度,由候選(k+l)-項集的集合Ck+1,產生頻繁(k+1)-項集的集合Lk+1。

    (6)若L≠Φ,則k=k+1,跳往步驟(4);否則,跳往步驟(7)。

    (7)根據最小置信度,由頻繁項集產生強關聯規則,結束。

    Apriori算法如何讓JAVA實現?

    項集用HashMap,integer>來表示,關鍵字用Set集合可以自動排序,值用于記錄項集在原始事物數據中出現的次數,原始數據用文件方式讀取,注意文件內容每一行為一個原始事物項,不需要輸入事物的編號。

    package?datamining;
    ?
    import?java.io.BufferedReader;
    import?java.io.File;
    import?java.io.FileNotFoundException;
    import?java.io.FileReader;
    import?java.io.IOException;
    import?java.util.ArrayList;
    import?java.util.HashMap;
    import?java.util.HashSet;
    import?java.util.Iterator;
    import?java.util.List;
    import?java.util.Map;
    import?java.util.Set;
    ?
    public?class?Apriori?{
    //剪枝函數
    public?ArrayList>?apriori_gen(HashMap,?Integer>?L_last,?int?last_index){
    ArrayList>?result?=?new?ArrayList>();??//存儲剪枝后的結果
    ArrayList>?item_set?=?null;??
    item_set?=?get_item_set(L_last);??//獲取上一個頻繁項的所有項集,并轉為字符串List
    for(int?i?=?0;?i??str?=?item_set.get(i);
    for(int?j?=?i?+?1;?j??new_item?=?new?HashSet();??//存儲新的候選項集
    ArrayList?str2?=?item_set.get(j);
    int?length?=?str.size();
    for(int?k?=?0;?k??candidate,?ArrayList>?last_item_set,?int?last_index)?{
    boolean?flag?=?true;
    ArrayList>?sub_set?=?get_subset(candidate,?last_index);
    //for(int?j?=?0;?j??item?=?sub_set.get(i);
    int?j?=?0;
    for(j?=?0;?j?>?get_subset(Set?candidate,?int?index){
    ArrayList>?sub_set?=?new?ArrayList>();
    ArrayList?item_set?=?new?ArrayList();
    Iterator?iter?=?candidate.iterator();
    while(iter.hasNext())
    item_set.add((String)iter.next());
    if(index?==?1)?{?????????//當index等于1時單獨考慮
    for(int?k?=?0;?k??buffer?=?new?ArrayList();
    buffer.add(item_set.get(k));
    sub_set.add(buffer);
    }
    }else?{
    for(int?i?=?0;?i??buffer?=?new?ArrayList();
    buffer.add(item_set.get(i));
    for(int?k?=?0;?k?>?get_item_set(HashMap,?Integer>?L_last){
    ArrayList>?result?=?new?ArrayList>();
    Iterator?iter?=?L_last.entrySet().iterator();
    while?(iter.hasNext())?{
    Map.Entry?entry?=?(Map.Entry)?iter.next();
    Set?set?=?(Set)entry.getKey();
    Iterator?iter2?=?set.iterator();
    ArrayList?item?=?new?ArrayList();
    while(iter2.hasNext())?{
    String?str?=?(String)iter2.next();
    item.add(str);
    }
    result.add(item);
    }
    return?result;
    }
    //處理原始事物數據
    public?HashMap,?Integer>?process_rawdata(ArrayList>?raw_input,?int?min_sub){
    HashMap,?Integer>?first_input?=?new?HashMap,?Integer>();?//存儲處理后結果
    //處理原始輸入事物數據,統計每個單獨事物的次數
    for(int?i?=?0;?i??item?=?raw_input.get(i);
    Iterator?iter?=?item.iterator();
    while(iter.hasNext())?{
    String?str?=?(String)iter.next();
    Set?single_item?=?new?HashSet();
    single_item.add(str);
    if(first_input.containsKey(single_item))?{
    int?count?=?first_input.get(single_item);
    first_input.put(single_item,?count+1);
    }else
    first_input.put(single_item,?1);
    }
    }
    //移除單獨事物出現次數少于min_sub的事物
    for?(Iterator,?Integer>>?iter?=?first_input.entrySet().iterator();?iter.hasNext();){
    ????Map.Entry,?Integer>?entry?=?iter.next();
    Object?key?=?entry.getKey();
    int?val?=?(int)entry.getValue();
    if(val??item,?ArrayList>?raw_input)?{
    int?count?=?0;
    Set?item2?=?new?HashSet<>(item);
    for(int?i?=?0;?i??item_set?=?new?HashSet(raw_input.get(i));
    item_set.retainAll(item2);
    if(item_set.size()?==?item2.size())
    count++;
    }
    return?count;
    }
    //算法主函數
    public?List,?Integer>>?apriori_main(ArrayList>?raw_input,?int?min_sub){
    int?last_index?=?1;
    List,?Integer>>?results?=?new?ArrayList,?Integer>>();?//存儲最終結果
    HashMap,?Integer>?first_input?=?process_rawdata(raw_input,?min_sub);?//獲取第一個頻繁項集
    ArrayList>?candidates?=?apriori_gen(first_input,?last_index);?//獲取第二個候選項集
    while(!(candidates.size()?==?0))?{???//循環終止條件,無法選出下一個候選集合為止
    HashMap,?Integer>?result?=?new?HashMap,?Integer>();
    for(int?i?=?0;?i?=?min_sub)
    result.put(candidates.get(i),?count);??//將滿足結果的加入結果集中
    }
    if(result.size()?>?0)
    results.add(result);
    last_index++;???????????????????????????????//索引加1
    candidates?=?apriori_gen(result,?last_index);??//計算下一個候選項集合
    }
    return?results;
    }
    public?static?void?main(String?args[])?throws?IOException?{
    ArrayList>?raw_data?=?new?ArrayList>();??//存儲原始數據
    File?file?=?new?File(".\\data\\apriori.txt");???//獲取外部原始事物數據
    BufferedReader?reader?=?new?BufferedReader(new?FileReader(file));
    String?string?=?"";
    while((string?=?reader.readLine())!=null){
    Set?item?=?new?HashSet();
    String[]?items?=?string.split(",");
    for(int?i?=?0;?i?,?Integer>>?result?=?apriori.apriori_main(raw_data,?2);?//定義min_sub為2
    System.out.println(result.get(result.size()-1));??//輸出最后結果
    }
    }

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java apriori

    Apriori算法是第一個關聯規則挖掘算法,它利用逐層搜索的迭代方法找出數據庫中項集的關系,以形成規則,其過程由連接(類矩陣運算)與剪枝(去掉那些沒必要的中間結果)組成。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java archive java arcsin java arccos java arctan java args java arrays.sort java ascii java asmx java aspectj java aspose java assembly java async win10專業版和企業版的區別 java bacnet java barrier java base64 java base64decoder java bean 手機充電時可以玩手機嗎 手機充電發熱發燙是什么原因 java application java append 蘋果13藍牙搜索不到設備怎么辦 java apns java ant java annotation java android iphone呼叫失敗是什么原因 java algorithm ipad2是哪年的 java akka java aggregation java aes加密 java advice java addall java add java actuator 西北五省是哪五省 java activity java activiti
    Top 国产精品中文字幕在线观看| 9i9精品国产免费久久| 2020天堂在线亚洲精品专区| 3d精品重口littleballerina| 四虎永久在线精品视频免费观看| 热re99久久精品国99热| 日本精品自产拍在线观看中文 | 国内精品久久久久影院免费| 久久久精品人妻久久影视| 日韩人妻精品无码一区二区三区| 色婷婷久久久SWAG精品| 亚洲AV无码一区二区三区久久精品| 精品国产亚洲一区二区三区| 精品女同一区二区三区免费播放| 午夜国产精品免费观看| 无码国产精品一区二区免费16| 国产精品视频全国免费观看| 久久精品免费一区二区喷潮| 精品亚洲成a人片在线观看 | 国产成人毛片亚洲精品| 欧美精品久久天天躁| 亚洲精品综合久久中文字幕| 精品一区二区在线观看| 精品人妻V?出轨中文字幕| 妇女自拍偷自拍亚洲精品| 精品久久久久久蜜臂a∨| 久久精品福利视频| 日本无码小泬粉嫩精品图| 国产亚洲福利精品一区二区| 精品国偷自产在线视频99| 久久精品国产乱子伦| 久久九九精品99国产精品| 久草视频在线这里精品| 国产精品亚洲精品日韩已方 | 国产三级精品三级在线观看| 国产亚洲蜜芽精品久久| 精品久久久久久中文字幕女| 人妻少妇精品视频三区二区一区| 久久亚洲精品成人AV| 亚洲精品视频久久久| 亚洲国产成人久久99精品|