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")
what is the data? what is the problem? very very dodgy ...
ReplyDelete