Created
March 26, 2016 06:02
-
-
Save lovemyliwu/a9bb5d9e735c5e0f0876 to your computer and use it in GitHub Desktop.
数据挖掘及应用测验(一)代码版答案.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var list = [10,12,14,15,17,18,18,23,25,25,25,25,26,26,33,37,37,39,39,39,39,40,40,43,45,51,80]; | |
console.log('currently compute base on the list:' + list); | |
list = list.sort(); | |
var length = list.length; | |
console.log('list length:' + length); | |
var itemCounts = {}, sum = 0, zongsu = []; | |
for (var idx=0; idx < length; idx ++) { | |
var item = list[idx]; | |
sum += item; | |
if (itemCounts.hasOwnProperty(item)) { | |
itemCounts[item].push(item); | |
} else { | |
itemCounts[item] = [item]; | |
} | |
} | |
for (var item in itemCounts) { | |
var itemList = itemCounts[item]; | |
zongsu.push({ | |
length: itemList.length, | |
value: itemList[0] | |
}); | |
} | |
console.log('sum:' + sum); | |
console.log('average:' + sum / length); | |
zongsu = zongsu.sort(function (x, y) {return y.length - x.length}); | |
var zongsuSize = zongsu[0].length; | |
for (var idx = 0; idx < zongsu.length; idx ++) { | |
var item = zongsu[idx]; | |
if (item.length != zongsuSize) { | |
break; | |
} | |
console.log('zongsu:' + item.value); | |
} | |
var middleIdx = parseInt(length / 2); | |
if (length % 2) { | |
var zhongWeiShuSum = list[middleIdx - 1] + list[middleIdx]; | |
console.log('zhongweishu:' + zhongWeiShuSum / 2); | |
} else { | |
console.log('zhongweishu:' + list[middleIdx - 1]); | |
} | |
var maxNumber = Math.max.apply(null, list), | |
minNumber = Math.min.apply(null, list); | |
console.log('zhonglieshu:' + (minNumber + maxNumber) /2 ); | |
console.log('Q1:' + list[parseInt((length + 1) * 0.25) - 1]); | |
console.log('Q2:' + list[parseInt((length + 1) * 0.5) - 1]); | |
console.log('Q3:' + list[parseInt((length + 1) * 0.75) - 1]); | |
var formatToOne = function (number) { | |
console.log('Format %d to [0.0, 1.0] space:' + (number - minNumber) / (maxNumber - minNumber), number); | |
}; | |
formatToOne(33); | |
var sperateBox = function (boxNumber) { | |
var numberOfOneBox = parseInt(length / boxNumber), cutIdx = 0; | |
for (var idx = 0;idx < boxNumber; idx ++) { | |
var box = list.slice(cutIdx, cutIdx + numberOfOneBox), | |
boxSum = 0; | |
cutIdx += numberOfOneBox; | |
for (var jdx = 0; jdx < box.length; jdx ++) { | |
boxSum += box[jdx]; | |
} | |
console.log('box %d value is:[%d...]', idx + 1, boxSum / box.length); | |
} | |
}; | |
sperateBox(3); | |
var listA = [12, 11, 32, 9], | |
listB = [20, 35, 0, 8]; | |
var computeDistance = function (objectA, objectB) { | |
var distance = 0, mDistance = 0, gaps = []; | |
for (var idx = 0; idx < objectA.length; idx ++) { | |
var gap = Math.abs(objectA[idx] - objectB[idx]); | |
distance += gap * gap; | |
mDistance += gap; | |
gaps.push(gap); | |
} | |
console.log('o distance:' + Math.sqrt(distance)); | |
console.log('m distance:' + mDistance); | |
console.log('shang que jie distance:' + Math.max.apply(null, gaps)); | |
}; | |
computeDistance(listA, listB); |
Author
lovemyliwu
commented
Mar 26, 2016
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment