Thursday, 8 December 2016

Pysparking with iris dataset

Pyspark to cluster iris dataset


Before we start, you should have the following things in place :

1) oracle virtualbox
2) ubuntu mounted on the virtualbox
3) anaconda and spark installed the virtual environment

You can go through this blog to get ready with the above things : blog

Codes for pyspark are given below (note that the version of your spark might be different.
Mine was 2.0.1)
from numpy import array
from math import sqrt

from pyspark.mllib.clustering import KMeans, KMeansModel

# Load and parse the data
data = sc.textFile("data/mllib/kmeans_data.txt")
parsedData = data.map(lambda line: array([float(x) for x in line.split(' ')]))

# Build the model (cluster the data)
clusters = KMeans.train(parsedData, 2, maxIterations=10,
                        runs=10, initializationMode="random")

# Evaluate clustering by computing Within Set Sum of Squared Errors
def error(point):
    center = clusters.centers[clusters.predict(point)]
    return sqrt(sum([x**2 for x in (point - center)]))

WSSSE = parsedData.map(lambda point: error(point)).reduce(lambda x, y: x + y)
print("Within Set Sum of Squared Error = " + str(WSSSE))

# Save and load model
clusters.save(sc, "target/org/apache/spark/PythonKMeansExample/KMeansModel")
sameModel = KMeansModel.load(sc, "target/org/apache/spark/PythonKMeansExample/KMeansModel")

1 comment:

  1. what is the data? what is the problem? very very dodgy ...

    ReplyDelete