1. 程式人生 > >Spark實現K-Means演算法

Spark實現K-Means演算法

import org.apache.log4j.{Level,Logger}
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.mllib.linalg.Vectors

object Kmeans {
  def main(args:Array[String]) = {
    // 遮蔽日誌
    Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
    Logger.getLogger(
"org.apache.jetty.server").setLevel(Level.OFF) // 設定執行環境 val conf = new SparkConf().setAppName("K-Means").setMaster("spark://master:7077") .setJars(Seq("E:\\Intellij\\Projects\\SimpleGraphX\\SimpleGraphX.jar")) val sc = new SparkContext(conf) // 裝載資料集 val data = sc.textFile("hdfs://master:9000/kmeans_data.txt", 1) val parsedData
= data.map(s => Vectors.dense(s.split(" ").map(_.toDouble))) // 將資料集聚類,2個類,20次迭代,形成資料模型 val numClusters = 2 val numIterations = 20 val model = KMeans.train(parsedData, numClusters, numIterations) // 資料模型的中心點 println("Cluster centres:") for(c <- model.clusterCenters) { println(
" " + c.toString) } // 使用誤差平方之和來評估資料模型 val cost = model.computeCost(parsedData) println("Within Set Sum of Squared Errors = " + cost) // 使用模型測試單點資料 println("Vectors 7.3 1.5 10.9 is belong to cluster:" + model.predict(Vectors.dense("7.3 1.5 10.9".split(" ") .map(_.toDouble)))) println("Vectors 4.2 11.2 2.7 is belong to cluster:" + model.predict(Vectors.dense("4.2 11.2 2.7".split(" ") .map(_.toDouble)))) println("Vectors 18.0 4.5 3.8 is belong to cluster:" + model.predict(Vectors.dense("1.0 14.5 73.8".split(" ") .map(_.toDouble)))) // 返回資料集和結果 val result = data.map { line => val linevectore = Vectors.dense(line.split(" ").map(_.toDouble)) val prediction = model.predict(linevectore) line + " " + prediction }.collect.foreach(println) sc.stop } }

相關推薦

spark 實現K-means演算法

spark 實現K-means演算法 package kmeans; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFou

Spark實現K-Means演算法

import org.apache.log4j.{Level,Logger} import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.mllib.clustering.KMeans import org.ap

使用Spark Mlib K-Means演算法分析網路攻擊資料

package apache.spark.mlib.rdd.kmeanclustering import org.apache.spark.ml.clustering.KMeans import org.apache.spark.ml.feature.{StandardScaler, Vect

java實現K-means演算法k-means聚類演算法原理

/** * 需要所有point 以及族中心list * * @author:Yien * @when:2018年5月20日下午3:14:09 * @Description:TOD

TensorFlow實現K-means演算法

正如標題所示: 利用 tf 實現k-means演算法 由於我也是菜雞一隻,把程式碼註釋寫在這裡,給和我一樣是菜雞的人看。如果有哪裡註釋不對,或者不夠科學的地方,還請各位指正。 本文的主要程式碼來自於這篇部落格,更改了此篇部落格中 tf 減法運算函式錯誤,https://blog.

Python實現k-means演算法

這也是周志華《機器學習》的習題9.4。 資料集是西瓜資料集4.0,如下 編號,密度,含糖率 1,0.697,0.46 2,0.774,0.376 3,0.634,0.264 4,0.608,0.318 5,0.556,0.215 6,0.403,0.23

java實現k-means演算法(用的鳶尾花iris的資料集,從mysq資料庫中讀取資料)

k-means演算法又稱k-均值演算法,是機器學習聚類演算法中的一種,是一種基於形心的劃分方法,其中每個簇的中心都用簇中所有物件的均值來表示。其思想如下: 輸入: k:簇的數目;D:包含n個物件的資料集。輸出:k個簇的集合。 方法: 從D中隨機選擇幾個物件作為起始質心

使用Java實現K-Means聚類演算法

第一次寫部落格,隨便寫寫。 關於K-Means介紹很多,還不清楚可以查一些相關資料。 個人對其實現步驟簡單總結為4步: 1.選出k值,隨機出k個起始質心點。  2.分別計算每個點和k個起始質點之間的距離,就近歸類。  3.最終中心點集可以劃分為k類,

k-means演算法及opencv實現

K-means演算法是最為經典的基於劃分的聚類方法,是十大經典資料探勘演算法之一。K-means演算法的基本思想是:以空間中k個點為中心進行聚類,對最靠近他們的物件歸類。通過迭代的方法,逐次更新各聚類中心的值,直至得到最好的聚類結果。 假設要把樣本集分為c個類別,演算法

Spark SQL對人類資料實現K-Means聚類,並對聚類中心格式化輸出

簡介 本篇博文對UCI提供的 Machine-Learning-Databases 資料集進行資料分析,並通過K-Means模型實現聚類,最後格式化輸出聚類中心點。 本文主要包括以下內容: 通過VectorAssembler來將多列資料合成一列features

K-means演算法及python sklearn實現

目錄 前言 例項推演  K值的確定 輪廓係數 K-means演算法 前言 根據訓練樣本是否包含標籤資訊,機器學習可以分為監督學習和無監督學習。聚類演算法是典型的無監督學習,其訓練樣本中只包含樣本特徵,不包含樣本的標

k-means演算法的Java實現

前言 k-means演算法是一種基於樣本間相似性度量的間接聚類方法,屬於非監督學習方法。通過指定k值將資料自動迭代分成k組,實現資料分類,然後可對分類好的資料進行進一步的研究。 演算法原理 1.在資料中隨機選取k個數據作為聚類中心 2.計算其他資料到k個聚類中

Python實現K-Means聚類演算法

       宣告:程式碼的執行環境為Python3。Python3與Python2在一些細節上會有所不同,希望廣大讀者注意。本部落格以程式碼為主,程式碼中會有詳細的註釋。相關文章將會發布在我的個人部落格專欄《Python從入門到深度學習》,歡迎大家關注~

k-means演算法及python實現

本篇文章主要講解聚類分析中的一種常用的演算法k-means,它的全稱叫作k均值演算法。 k-means原理 k-means演算法是一種基於原型的、劃分的聚類技術。 基於原型可以理解為基於質心,也就是說,每個物件到定義該簇質心的距離比到其他簇質心的距離更近。當質心沒有意義

python 實現周志華 機器學習書中 k-means 演算法

hello,all 上節採用python實現了決策樹,本節使用python實現k-means演算法,後一節將會採用map-reduce實現k-means演算法 演算法程式如下: 演算法程式碼如下: # coding=utf-8 import pprint import

k-Means演算法Matlab實現

clc; clear; %讀取資料檔案,生成點矩陣 fileID = fopen('D:\matlabFile\data.txt');  C=textscan(fileID,'%f %f');  fclose(fileID);  %顯示陣列結果 %celldisp(C);

簡單的K-means演算法C語言實現程式碼

K-means演算法是很典型的基於距離的聚類演算法,採用距離作為相似性的評價指標,即認為兩個物件的距離越近,其相似度就越大。該演算法認為簇是由距離靠近的物件組成的,因此把得到緊湊且獨立的簇作為最終目標。 演算法過程如下: 1)從N個樣本隨機選取K個樣本作為質心 2)對剩餘

(二)k-means演算法原理以及python實現

一、有監督學習和無監督學習 1. 有監督學習 監督學習(supervised learning):通過已有的訓練樣本(即已知資料以及其對應的輸出)來訓練,從而得到一個最優模型,再利用這個模型將所有新的資料樣本對映為相應的輸出結果,對輸出結果進行簡單的判斷從而

【Python】k-means演算法實現

# -*- coding: utf-8 -*- import math import random import matplotlib.pyplot as plt from matplotlib import colors as m_colors #生成樣本點 def g

【Java】K-means演算法Java實現以及影象分割(續)

import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class