亚洲精品国产精品乱码视色,下载应用成人电影AVapp,成人影院下载视频

      <track id="gfhue"><i id="gfhue"></i></track><input id="gfhue"></input>

      1. 更多精彩內(nèi)容,歡迎關(guān)注:

        視頻號(hào)
        視頻號(hào)

        抖音
        抖音

        快手
        快手

        微博
        微博

        當(dāng)前位置:首頁(yè) 科技百科 java apriori

        java apriori

        文檔

        java apriori

        Apriori算法是第一個(gè)關(guān)聯(lián)規(guī)則挖掘算法,它利用逐層搜索的迭代方法找出數(shù)據(jù)庫(kù)中項(xiàng)集的關(guān)系,以形成規(guī)則,其過程由連接(類矩陣運(yùn)算)與剪枝(去掉那些沒必要的中間結(jié)果)組成。
        推薦度:
        導(dǎo)讀Apriori算法是第一個(gè)關(guān)聯(lián)規(guī)則挖掘算法,它利用逐層搜索的迭代方法找出數(shù)據(jù)庫(kù)中項(xiàng)集的關(guān)系,以形成規(guī)則,其過程由連接(類矩陣運(yùn)算)與剪枝(去掉那些沒必要的中間結(jié)果)組成。

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

        Apriori算法是第一個(gè)關(guān)聯(lián)規(guī)則挖掘算法,它利用逐層搜索的迭代方法找出數(shù)據(jù)庫(kù)中項(xiàng)集的關(guān)系,以形成規(guī)則,其過程由連接(類矩陣運(yùn)算)與剪枝(去掉那些沒必要的中間結(jié)果)組成。

        Apriori算法的描述如下:

        (1)掃描全部數(shù)據(jù),產(chǎn)生候選1-項(xiàng)集的集合C1。

        (2)根據(jù)最小支持度,由候選1-項(xiàng)集的集合C1產(chǎn)生頻繁1-項(xiàng)集的集合L1。

        (3)對(duì)k>1,重復(fù)執(zhí)行步驟(4)、(5)、(6)。

        (4)由Lk執(zhí)行連接和剪枝操作,產(chǎn)生候選(k+l)-項(xiàng)集的集合Ck+1。

        (5)根據(jù)最小支持度,由候選(k+l)-項(xiàng)集的集合Ck+1,產(chǎn)生頻繁(k+1)-項(xiàng)集的集合Lk+1。

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

        (7)根據(jù)最小置信度,由頻繁項(xiàng)集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則,結(jié)束。

        Apriori算法如何讓JAVA實(shí)現(xiàn)?

        項(xiàng)集用HashMap,integer>來(lái)表示,關(guān)鍵字用Set集合可以自動(dòng)排序,值用于記錄項(xiàng)集在原始事物數(shù)據(jù)中出現(xiàn)的次數(shù),原始數(shù)據(jù)用文件方式讀取,注意文件內(nèi)容每一行為一個(gè)原始事物項(xiàng),不需要輸入事物的編號(hào)。

        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?{
        //剪枝函數(shù)
        public?ArrayList>?apriori_gen(HashMap,?Integer>?L_last,?int?last_index){
        ArrayList>?result?=?new?ArrayList>();??//存儲(chǔ)剪枝后的結(jié)果
        ArrayList>?item_set?=?null;??
        item_set?=?get_item_set(L_last);??//獲取上一個(gè)頻繁項(xiàng)的所有項(xiàng)集,并轉(zhuǎn)為字符串List
        for(int?i?=?0;?i??str?=?item_set.get(i);
        for(int?j?=?i?+?1;?j??new_item?=?new?HashSet();??//存儲(chǔ)新的候選項(xiàng)集
        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)?{?????????//當(dāng)index等于1時(shí)單獨(dú)考慮
        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;
        }
        //處理原始事物數(shù)據(jù)
        public?HashMap,?Integer>?process_rawdata(ArrayList>?raw_input,?int?min_sub){
        HashMap,?Integer>?first_input?=?new?HashMap,?Integer>();?//存儲(chǔ)處理后結(jié)果
        //處理原始輸入事物數(shù)據(jù),統(tǒng)計(jì)每個(gè)單獨(dú)事物的次數(shù)
        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);
        }
        }
        //移除單獨(dú)事物出現(xiàn)次數(shù)少于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;
        }
        //算法主函數(shù)
        public?List,?Integer>>?apriori_main(ArrayList>?raw_input,?int?min_sub){
        int?last_index?=?1;
        List,?Integer>>?results?=?new?ArrayList,?Integer>>();?//存儲(chǔ)最終結(jié)果
        HashMap,?Integer>?first_input?=?process_rawdata(raw_input,?min_sub);?//獲取第一個(gè)頻繁項(xiàng)集
        ArrayList>?candidates?=?apriori_gen(first_input,?last_index);?//獲取第二個(gè)候選項(xiàng)集
        while(!(candidates.size()?==?0))?{???//循環(huán)終止條件,無(wú)法選出下一個(gè)候選集合為止
        HashMap,?Integer>?result?=?new?HashMap,?Integer>();
        for(int?i?=?0;?i?=?min_sub)
        result.put(candidates.get(i),?count);??//將滿足結(jié)果的加入結(jié)果集中
        }
        if(result.size()?>?0)
        results.add(result);
        last_index++;???????????????????????????????//索引加1
        candidates?=?apriori_gen(result,?last_index);??//計(jì)算下一個(gè)候選項(xiàng)集合
        }
        return?results;
        }
        public?static?void?main(String?args[])?throws?IOException?{
        ArrayList>?raw_data?=?new?ArrayList>();??//存儲(chǔ)原始數(shù)據(jù)
        File?file?=?new?File(".\\data\\apriori.txt");???//獲取外部原始事物數(shù)據(jù)
        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));??//輸出最后結(jié)果
        }
        }

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

        文檔

        java apriori

        Apriori算法是第一個(gè)關(guān)聯(lián)規(guī)則挖掘算法,它利用逐層搜索的迭代方法找出數(shù)據(jù)庫(kù)中項(xiàng)集的關(guān)系,以形成規(guī)則,其過程由連接(類矩陣運(yùn)算)與剪枝(去掉那些沒必要的中間結(jié)果)組成。
        推薦度:
        為你推薦
        資訊專欄
        熱門視頻
        相關(guān)推薦
        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專業(yè)版和企業(yè)版的區(qū)別 java bacnet java barrier java base64 java base64decoder java bean 手機(jī)充電時(shí)可以玩手機(jī)嗎 手機(jī)充電發(fā)熱發(fā)燙是什么原因 java application java append 蘋果13藍(lán)牙搜索不到設(shè)備怎么辦 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