欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于MapReduce的K近鄰數(shù)據(jù)預(yù)測方法

文檔序號:8259202閱讀:445來源:國知局
一種基于MapReduce的K近鄰數(shù)據(jù)預(yù)測方法【
技術(shù)領(lǐng)域
】[0001]本發(fā)明屬于數(shù)據(jù)挖掘
技術(shù)領(lǐng)域
,涉及一種基于MapReduce的K近鄰數(shù)據(jù)預(yù)測方法。【
背景技術(shù)
】[0002]線性回歸預(yù)測作為數(shù)據(jù)挖掘中的統(tǒng)計、預(yù)測方法之一,在科研、商業(yè)數(shù)據(jù)分析中占據(jù)著重要的地位。傳統(tǒng)的線性回歸預(yù)測屬于參數(shù)學(xué)習(xí)算法,其參數(shù)是固定不變的,而在實際應(yīng)運(yùn)中,數(shù)據(jù)的生成機(jī)制與線性回歸模型有很大偏差,這樣得出的分析數(shù)據(jù)往往與實際有很大出入,甚至是錯誤的數(shù)據(jù)。局部加權(quán)線性回歸預(yù)測方法是一種非參數(shù)回歸技術(shù),它允許線性回歸模型中的參數(shù)隨著自變量的不同取值而變化。在大數(shù)據(jù)時代,傳統(tǒng)的線性回歸預(yù)測方法和局部加權(quán)線性回歸預(yù)測方法,繁瑣的計算步驟和效率極低的單機(jī)串行計算,已經(jīng)無法繼續(xù)勝任對數(shù)據(jù)進(jìn)行挖掘和處理,對大規(guī)模數(shù)據(jù)的挖掘和處理能力存在著很大的局限性。[0003]MapReduce編程模型是Google公司的核心計算模型,被應(yīng)用于大規(guī)模集群上的復(fù)雜的并行計算。Hadoop是Apache軟件基金會旗下的一個開源分布式計算平臺,該平臺開源實現(xiàn)了MapReduce編程模型。K近鄰(K-NearestNeighbor)是一種簡潔而有效的非參數(shù)學(xué)習(xí)方法。K近鄰方法對每一個輸入都會去訓(xùn)練數(shù)據(jù)集中去搜索與其最相似的K個數(shù)據(jù)對象,在K近鄰學(xué)習(xí)過程中,當(dāng)目標(biāo)函數(shù)值為連續(xù)值時,對待預(yù)測數(shù)據(jù)搜索出的K個近鄰點(diǎn),分別給定一個距離加權(quán),是一種簡單可靠的變參回歸預(yù)測方法。當(dāng)訓(xùn)練數(shù)據(jù)達(dá)到海量規(guī)模時,K近鄰的搜索效率將很難達(dá)到實際需求,而且海量的數(shù)據(jù)對于目前的計算機(jī)處理速度和內(nèi)存空間也是一種挑戰(zhàn)?!?br/>發(fā)明內(nèi)容】[0004]本發(fā)明的目的是提供一種基于MapReduce的K近鄰數(shù)據(jù)預(yù)測方法,解決了傳統(tǒng)預(yù)測方法參數(shù)固定,數(shù)據(jù)處理精準(zhǔn)度差以及對大規(guī)模數(shù)據(jù)的回歸預(yù)測處理能力存在局限性的問題。[0005]本發(fā)明所采用的技術(shù)方案是,一種基于MapReduce的K近鄰數(shù)據(jù)預(yù)測方法,包括如下步驟:[0006]步驟1、確定訓(xùn)練數(shù)據(jù)和待測試數(shù)據(jù),并將訓(xùn)練數(shù)據(jù)上傳至Hadoop分布式集群,分散至各集群節(jié)點(diǎn)中存儲;[0007]步驟2、在Hadoop分布式集群中各個節(jié)點(diǎn)的Mapper端,設(shè)計Map函數(shù):根據(jù)歐式距離計算公式,計算出待預(yù)測數(shù)據(jù)與本節(jié)點(diǎn)部分訓(xùn)練數(shù)據(jù)樣本之間的距離;[0008]步驟3、在Mapper端,將步驟2所得距離值發(fā)送至集群節(jié)點(diǎn)的Combiner端,設(shè)計Combine函數(shù):進(jìn)行本地排序,選出局部距離最小的K個最近鄰點(diǎn),得到局部K-最近鄰子集;[0009]步驟4、在Combiner端,將步驟3所得的所有局部K-最近鄰子集,發(fā)送至Hadoop分布式集群各Reducer端,設(shè)計Reduce函數(shù):對所有局部K-最近鄰子集進(jìn)行重新排序,得到全局K-最近鄰子集;利用距離加權(quán)方法,根據(jù)權(quán)重函數(shù)計算全局K-最近鄰子集中訓(xùn)練數(shù)據(jù)對待預(yù)測數(shù)值影響的權(quán)重大??;利用回歸函數(shù),將所得權(quán)重值定義為回歸系數(shù),計算得出待預(yù)測數(shù)據(jù)的預(yù)測值;[0010]步驟5、將步驟4處理后的數(shù)據(jù)存儲在HDFS文件系統(tǒng)中,可用Hadoop相關(guān)查看工具查看或下載至本地。[0011]本發(fā)明的特征還在于,[0012]步驟2中,設(shè)計Map函數(shù)的過程為:函數(shù)輸入定義為〈LongWritablekey,Texttext〉,key為訓(xùn)練數(shù)據(jù)行號,text為記錄數(shù)據(jù);輸出函數(shù)定義為〈Contextcontext〉,定義類Sample(),存儲數(shù)據(jù)間距離和此條訓(xùn)練數(shù)據(jù)目標(biāo)函數(shù)實際值;遍歷所有訓(xùn)練數(shù)據(jù)和待預(yù)測數(shù)據(jù),計算其距離,并將距離值和訓(xùn)練數(shù)據(jù)的目標(biāo)函數(shù)值存入Sample();輸出context,write(key',sample()),key'為待預(yù)測數(shù)據(jù)行號。[0013]步驟3中,設(shè)計Combine函數(shù)具體過程為:將函數(shù)輸入定義為〈LongWritablekey,Samplesample〉,輸出定義為〈Contextcontext〉;把所有的sample存入一個鏈表結(jié)構(gòu)里,arrayList.add(sample);對arrayList進(jìn)行局部排序,執(zhí)行sort(arrayList);從排好順序的arrayList中僅取出前K個sample,并輸出context,write(key,arrayList.get())。[0014]步驟4中,設(shè)計Reduce函數(shù)過程為:函數(shù)輸入定義為〈LongWritablekey,Iterator〈Sample>values>,函數(shù)輸出定義為〈Contextcontext〉;取出所有的K最近鄰點(diǎn)相關(guān)數(shù)據(jù)存入一個arrayList,進(jìn)行全局排序,并取出全局的K個最近鄰點(diǎn)相關(guān)數(shù)據(jù)存入sortedArrayList,sortedArrayList.add(arrayList.get())〇[0015]步驟4中,權(quán)重函數(shù)為:[0016]【主權(quán)項】1.一種基于MapReduce的K近鄰數(shù)據(jù)預(yù)測方法,其特征在于,包括如下步驟:步驟1、確定訓(xùn)練數(shù)據(jù)和待測試數(shù)據(jù),并將訓(xùn)練數(shù)據(jù)上傳至Hadoop分布式集群,分散至各集群節(jié)點(diǎn)中存儲;步驟2、在Hadoop分布式集群中各個節(jié)點(diǎn)的Mapper端,設(shè)計Map函數(shù),根據(jù)歐式距離計算公式,計算出待預(yù)測數(shù)據(jù)與本節(jié)點(diǎn)部分訓(xùn)練數(shù)據(jù)樣本之間的距離;步驟3、在Mapper端,將步驟2所得距離值發(fā)送至集群節(jié)點(diǎn)的Combiner端,設(shè)計Combine函數(shù),并進(jìn)行本地排序,選出局部距離最小的K個最近鄰點(diǎn),得到局部K-最近鄰子集;步驟4、在Combiner端,將步驟3所得的所有局部K-最近鄰子集,發(fā)送至Hadoop分布式集群各Reducer端,設(shè)計Reduce函數(shù):對所有局部K-最近鄰子集進(jìn)行重新排序,得到全局K-最近鄰子集;利用距離加權(quán)方法,根據(jù)權(quán)重函數(shù)計算全局K-最近鄰子集中訓(xùn)練數(shù)據(jù)對待預(yù)測數(shù)值影響的權(quán)重大??;利用回歸函數(shù),將所得權(quán)重值定義為回歸系數(shù),計算得出待預(yù)測數(shù)據(jù)的預(yù)測值;步驟5、將步驟4處理后的數(shù)據(jù)存儲在HDFS文件系統(tǒng)中,用Hadoop相關(guān)查看工具查看或下載至本地。2.根據(jù)權(quán)利要求1所述的一種基于MapReduce的k近鄰數(shù)據(jù)預(yù)測方法,其特征在于,步驟2中,所述設(shè)計Map函數(shù)的過程為:函數(shù)輸入定義為〈LongWritablekey,Texttext〉,key為訓(xùn)練數(shù)據(jù)行號,text為記錄數(shù)據(jù);輸出函數(shù)定義為〈Contextcontext〉,定義類Sample(),存儲數(shù)據(jù)間距離和此條訓(xùn)練數(shù)據(jù)目標(biāo)函數(shù)實際值;遍歷所有訓(xùn)練數(shù)據(jù)和待預(yù)測數(shù)據(jù),計算其距離,并將距離值和訓(xùn)練數(shù)據(jù)的目標(biāo)函數(shù)值存入Sample();輸出context,write(key',sample()),key'為待預(yù)測數(shù)據(jù)行號。3.根據(jù)權(quán)利要求1所述的一種基于MapReduce的k近鄰數(shù)據(jù)預(yù)測方法,其特征在于,步驟3中,所述設(shè)計Combine函數(shù)的具體過程為:將函數(shù)輸入定義為〈LongWritablekey,Samplesample〉,輸出定義為〈Contextcontext〉;把所有的sample存入一個鏈表結(jié)構(gòu)里,arrayList.add(sample);對arrayList進(jìn)行排序,執(zhí)行sort(arrayList);從排好順序的arrayList中僅取出前K個sample,并輸出context,write(key,arrayList.get())。4.根據(jù)權(quán)利要求1所述的一種基于MapReduce的k近鄰數(shù)據(jù)預(yù)測方法,其特征在于,步驟4中,所述設(shè)計Reduce函數(shù)過程為:函數(shù)輸入定義為〈LongWritablekey,Iterator〈Sample>values>,函數(shù)輸出定義為〈Contextcontext〉;取出所有的K最近鄰點(diǎn)相關(guān)數(shù)據(jù)存入一個arrayList,進(jìn)行全局排序,并取出全局的K個最近鄰點(diǎn)相關(guān)數(shù)據(jù)存sortedArrayList,sortedArrayList.add(arrayList.get())〇5.根據(jù)權(quán)利要求1所述的一種基于MapReduce的k近鄰數(shù)據(jù)預(yù)測方法,其特征在于,步驟4中,所述權(quán)重函數(shù)為:其中,W(x,Pi)為權(quán)重值,d(x,Pi)為待預(yù)測點(diǎn)x訓(xùn)練數(shù)據(jù)中第i個鄰居?1的距離,1<i<n〇6.根據(jù)權(quán)利要求1所述的一種基于MapReduce的k近鄰數(shù)據(jù)預(yù)測方法,其特征在于,步驟4中,所述回歸函數(shù)為:其中,y'為測試樣本的回歸預(yù)測值,h為回歸系數(shù),yi為訓(xùn)練樣本pi的目標(biāo)值?!緦@勘景l(fā)明公開的一種基于MapReduce的K近鄰數(shù)據(jù)預(yù)測方法,包括如下步驟:確定訓(xùn)練數(shù)據(jù)和待測試數(shù)據(jù),將訓(xùn)練數(shù)據(jù)上傳至Hadoop集群,分散存儲;設(shè)計Map函數(shù)計算待預(yù)測數(shù)據(jù)與本節(jié)點(diǎn)的部分訓(xùn)練數(shù)據(jù)之間的距離;設(shè)計Combine函數(shù),對Map函數(shù)的輸出進(jìn)行局部排序;Reducer端設(shè)計Reduce函數(shù),進(jìn)行全局排序,得到全局的K個最近鄰數(shù)據(jù)對象及其距離,利用距離加權(quán)方法,計算K個權(quán)重大小,將計算出的權(quán)重值定義為回歸系數(shù),計算出待預(yù)測數(shù)據(jù)的預(yù)測值。本發(fā)明采用變參機(jī)制替代傳統(tǒng)線性回歸預(yù)測方法中的固參模式,提高了數(shù)據(jù)預(yù)測的準(zhǔn)確精度;利用MapReduce編程模型,在Hadoop分布式計算平臺上實現(xiàn)并行計算,大幅度提高了大規(guī)模數(shù)據(jù)集的計算效率?!綢PC分類】G06F19-00【公開號】CN104573331【申請?zhí)枴緾N201410803550【發(fā)明人】薛濤,孫兵率【申請人】西安工程大學(xué)【公開日】2015年4月29日【申請日】2014年12月19日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
越西县| 肥城市| 盐源县| 新余市| 嘉荫县| 娱乐| 两当县| 德庆县| 万山特区| 安塞县| 武平县| 柳河县| 江都市| 大丰市| 景洪市| 和平区| 聂荣县| 文成县| 文山县| 大英县| 锡林浩特市| 东兴市| 雷山县| 邓州市| 方正县| 山东| 万宁市| 桃园县| 霍山县| 保亭| 临安市| 广安市| 伽师县| 靖远县| 勐海县| 长兴县| 顺义区| 神农架林区| 雷山县| 明星| 佛冈县|