random centres

This commit is contained in:
Joe Darby
2016-12-17 18:01:30 +00:00
parent 6d1d5858e1
commit 7245521a78
2 changed files with 42 additions and 14 deletions
+32 -9
View File
@@ -2,9 +2,6 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="a45ae16c-c18b-46fd-bdd5-74c3ba5fabef" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/vcs.xml" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/scala/KMeans.scala" afterPath="$PROJECT_DIR$/src/main/scala/KMeans.scala" />
</list>
<ignored path="$PROJECT_DIR$/target/" />
@@ -24,8 +21,8 @@
<file leaf-file-name="KMeans.scala" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/scala/KMeans.scala">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="46" column="3" lean-forward="true" selection-start-line="46" selection-start-column="3" selection-end-line="46" selection-end-column="3" />
<state relative-caret-position="342">
<caret line="25" column="33" lean-forward="true" selection-start-line="25" selection-start-column="33" selection-end-line="25" selection-end-column="33" />
<folding>
<element signature="e#23#54#0" expanded="true" />
</folding>
@@ -43,6 +40,16 @@
</provider>
</entry>
</file>
<file leaf-file-name="XMLParser.scala" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/scala/XMLParser.scala">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="15" column="7" lean-forward="false" selection-start-line="15" selection-start-column="7" selection-end-line="15" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="Git.Settings">
@@ -238,12 +245,12 @@
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1481992380230</updated>
<workItem from="1481992381575" duration="2780000" />
<workItem from="1481992381575" duration="4437000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="2780000" />
<option name="totallyTimeSpent" value="4437000" />
</component>
<component name="ToolWindowManager">
<frame x="65" y="24" width="1615" height="1026" extended-state="6" />
@@ -313,10 +320,26 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/scala/XMLParser.scala">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="15" column="7" lean-forward="false" selection-start-line="15" selection-start-column="7" selection-end-line="15" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/spark/spark-core_2.10/1.6.0/spark-core_2.10-1.6.0-sources.jar!/org/apache/spark/rdd/RDD.scala">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="307">
<caret line="481" column="6" lean-forward="false" selection-start-line="481" selection-start-column="6" selection-end-line="481" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/scala/KMeans.scala">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="46" column="3" lean-forward="true" selection-start-line="46" selection-start-column="3" selection-end-line="46" selection-end-column="3" />
<state relative-caret-position="342">
<caret line="25" column="33" lean-forward="true" selection-start-line="25" selection-start-column="33" selection-end-line="25" selection-end-column="33" />
<folding>
<element signature="e#23#54#0" expanded="true" />
</folding>
+10 -5
View File
@@ -17,8 +17,8 @@ object KMeans {
val rows = relevantData.rdd
//val rowsAsArray = rows.map(row => List(row.getInt(0).toFloat, row.getInt(1).toFloat, row.getInt(2).toFloat) )
val rowsAsArray = rows.map(row => row.getInt(0).toFloat)
val maximum = rowsAsArray.reduce((a, b) => math.max(a, b))
println(maximum)
//val maximum = rowsAsArray.reduce((a, b) => math.max(a, b))
//println(maximum)
//rowsAsArray.foreach(println)
val K = 4
//number of intended clusters
@@ -26,19 +26,24 @@ object KMeans {
val m = 1 //number of features
//var centres = new ArrayBuffer[Float]()
//var centres: Array[Float] = rowsAsArray.takeSample(false, K, System.nanoTime().toInt)
var centres: Array[Float] = rowsAsArray.takeSample(false, K, System.nanoTime().toInt)
//To reduce chance of two random centres being the same, add i to each
for (i <- 0 until K) {
centres(i) += i
}
/*var centres : ArrayBuffer[Float] = new ArrayBuffer[Float](K)
for (i <- 0 until K) {
centres(i) = randomCentres(i)
}*/
var centres = new Array[Float](K)
/*var centres = new Array[Float](K)
val someNumber = maximum / K
for (i <- 0 until K) {
centres(i) = someNumber * i
}
}*/
for (i <- 0 until iterations) {
centres = clustering(centres, rowsAsArray, m, K)