python-ML學(xué)習(xí)小計(jì)-L3-K聚類-標(biāo)準(zhǔn)化函數(shù)

class KMean(object):

? ? def __init__(self,k):

? ? ? ? self._data=[]

? ? ? ? self._normalizeData=[]

? ? ? ? self._memeberOfClusters=[]

? ? ? ? self._maxIteration=None

? ? ? ? self._clusterCenters=[]

? ? ? ? self._pointChangedNum=0

? ? ? ? self._k=k

? ? ? ? self._comment=[]

? ? def _getColumMeanAndStd(self, column):

? ? ? ? sumx=0.0

? ? ? ? sumx2=0.0

? ? ? ? for x in column:

? ? ? ? ? ? sumx+=x

? ? ? ? ? ? sumx2+=x**2

? ? ? ? n=len(column)

? ? ? ?mean=sum/n

? ? ? ?d=sumx2/n-mean**2

? ? ? ? std=pow(d,0.5)

? ? ? ? return (round(mean,3),round(std,3))

? ? def _getColumnMedian(self,column):

? ? ? ? columncopy=list(column)

? ? ? ? columncopy.sort()

? ? ? ? clen=len(columncopy)

? ? ? ? if clen%2==0:

? ? ? ? ? ? return (columncopy[clen/2]+columncopy[clen/2-1])/2

? ? ? ? else:

? ? ? ? ? ? return columncopy[(clen-1)/2]

? ?def normalizeOneColumn(self,column):

? ? ? ? cmedian=self._getColumnMedian(column)

? ? ? ? csum=sum([abs(x-cmedian) for x in column])*1.0

? ? ? ?asd=round(csum/len(column),3)

? ? ? ?result=[round((x-cmedian)/asd,3) for x in column]

? ? return result

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容