❶ mahout的kmeans演算法要怎麼輸入向量
可以把id那一列去掉,官網的例子應該是60維數據
❷ k means演算法如何具體實現呢
1.基本Kmeans演算法[1]
[cpp] view plain
選擇K個點作為初始質心
repeat
將每個點指派到最近的質心,形成K個簇
重新計算每個簇的質心
until 簇不發生變化或達到最大迭代次數
時間復雜度:O(tKmn),其中,t為迭代次數,K為簇的數目,m為記錄數,n為維數
空間復雜度:O((m+K)n),其中,K為簇的數目,m為記錄數,n為維數
❸ 我想用eclipse、mahout處理hadoop上的數據,mahout演算法用k-means演算法。現在就只是這個概念,
你最好先搞清楚,hadoop安裝一下先,然後和eclipse連接
然後下載mahout的源代碼,用eclipse打開,編譯
將你的數據放到HDFS上,就可以了
PS. hadoop只能處理HDFS上的數據,就算你想處理本地的,實質上也是上傳到了HDFS上
❹ 求MATLAB實現canopy-kmeans聚類演算法的完整代碼
canopy聚類演算法的MATLAB程序
❺ 怎麼用mahout實現模糊k-means演算法,最好帶注釋
Hive Hadoop中類似於數據倉庫的應用,所有要用到的表可以存在Hive中,並且HQL語言類sql語言直接見表查詢。
Hdfs是Hadoop中文件存儲的格式。
Hbase Hadoop中一種表存儲的方式,是以列式存儲的方式存儲一些大數據量的表。
Pig Hadoop的ETL平台工具,提供了簡便的語言也是。
Sqoop 就是一個搬數的工具,從關系型資料庫到Hdfs中,或者反過來。 也可以用Java介面直接實現搬數的過程。
ODI(12版本)加入Hive架構,使得搬數更簡單了。 Sqoop速度好慢,增量也比較麻煩。
Maorece就是Hadoop核心演算法,一個Map 一個Rece函數。
Mahout 是Hadoop的一個數據挖掘應用,利用許多封裝好的演算法進行數據分析例如K-Means演算法。
❻ 如何在Hadoop平台上實現K-means演算法
一、介紹Mahout
Mahout是Apache下的開源機器學習軟體包,目前實現的機器學習演算法主要包含有協同過濾/推薦引擎,聚類和分類三 個部分。Mahout從設計開始就旨在建立可擴展的機器學習軟體包,用於處理大數據機器學習的問題,當你正在研究的數據量大到不能在一台機器上運行時,就 可以選擇使用Mahout,讓你的數據在Hadoop集群的進行分析。Mahout某些部分的實現直接創建在Hadoop之上,這就使得其具有進行大數據 處理的能力,也是Mahout最大的優勢所在。相比較於Weka,RapidMiner等 圖形化的機器學習軟體,Mahout只提供機器學習的程序包(library),不提供用戶圖形界面,並且Mahout並不包含所有的機器學習演算法實現, 這一點可以算得上是她的一個劣勢,但前面提到過Mahout並不是「又一個機器學習軟體」,而是要成為一個「可擴展的用於處理大數據的機器學習軟體」,但 是我相信會有越來越多的機器學習演算法會在Mahout上面實現。[1]
二、介紹K-Means
這是Apache官網上的演算法描述,簡單來說就是基於劃分的聚類演算法,把n個對象分為k個簇,以使簇內具有較高的相似度。相似度的計算根據一個簇中對象的平均值來進行。[2]
三、在Hadoop上實現運行
1,實驗環境
①hadoop集群環境:1.2.1 一個Master,兩個Slaves,在開始運行kmeans時啟動hadoop
②操作系統:所有機器的系統均為ubuntu12.04
③Mahout版本:採用的是0.5版
2,數據准備
數據採用的是 這是網上提供的一個比較不錯是數據源。然後用指令 hadoop fs -put /home/hadoop/Desktop/data testdata,將在我桌面的文件data上傳到HDFS的testdata目錄下,這里為什麼是testdata,我也正在思考,因為我本來是上傳到 input里,但是運行時提示could not find ….user/testdata之類的,所以現改為了testdata。
3,運行
①配置Mahout環境:在Apache官網下載Mahout的版本,我選擇的是0.5。然後解壓到你指定的目錄,將此目錄路徑寫入/etc/profile,添加如下語句:
export MAHOUT_HOME=/home/hadoop/hadoop-1.2.1/mahout-distribution-0.5
export HADOOP_CONF_DIR=/home/hadoop/hadoop-1.2.1/conf
export PATH=$PATH:/home/hadoop/hadoop-1.2.1/bin:$MAHOUT_HOME/bin
然後執行 source /etc/profile。在mahout目錄下執行bin/mahout命令,檢測系統是否安裝成功。如圖:
註:此處修改環境變數有些網上提示是/etc/bash.bashrc,我也試著修改過,但是發現在我這里使環境變數生效的是profile。
②運行Mahout里自帶的K-Means演算法,bin/mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job,這里啟動後遇到了一點問題,提示 Could not find math.vector。
4,結果
在我的環境下運行5分鍾左右,最後生成一個文件,如圖
四、總結
Mahout是一個很強大的數據挖掘工具,需要進行更深層的了解。
❼ 如何用maprece分布式實現kmeans演算法
可以自己嘗試寫一個分布式的kmeans,也可以部署spark,使用spark-mllib裡面的kmeans如果對python比較熟悉,可以使用pyspark的mllib如果只是hadoop,找找mahout演算法包
❽ matlab自帶的kmeans代碼可在哪看,它初始點選擇使用參數sample,這個具體是怎麼選擇的,我怎麼能找出來啊
以MATLAB R2012b為例:
一、點擊下圖中紅圈指示「Find Files」。
三、對於其他版本的MATLAB,查找kmeans函數的源代碼則大同小異了,而kmeans函數的使用方法,可在MATLAB的help中找到。至於如何選擇初始點,好像有隨機選擇k個點法、選擇批次距離盡可能遠的k個點等等方法,具體還要查閱相關資料。
❾ 怎麼對mahout的k-means演算法改進
你最好先搞清楚,hadoop安裝一下先,然後和eclipse連接 然後下載mahout的源代碼,用eclipse打開,編譯 將你的數據放到HDFS上,就可以了 PS. hadoop只能處理HDFS上的數據,就算你想處理本地的,實質上也是上傳到了HDFS上