機器學習演算法之K-means-spark
1 聚類
簡單回顧一下:
首先,隨機在點群中選取K個點,作為劃分聚落的種子點;
然後,求點群中所有的點到這K個點的距離;
接下來,將離種子點近的點都移動到種子點附近;
最後,不斷重複第二和第三步,直到沒有點需要移動了。
以上只是一個概念的解釋,我想這種問題還是必須看看公式才能清楚理解:
1、隨機選取K個種子點,設為
2、對點群中的每一個點計算公式:
即該點屬於K個類別中的
3、這次所有點都計算完畢就完事了嗎?
當然不是了,畢竟種子點也是瞎選的,一般情況都不是最優的分類。所以需要迭代計算新聚落的質心。算出的質心又被拿出來當種子點繼續重複第二步。
最後直到質心的位置基本不變為止,基本可以確定聚落情況。
2 聚類與EM
當我們在對點群進行聚類的時候,是不知道每個點的具體類別的。所以第一次我們指定x這個樣本的類別假設為y。
通過極大似然估計,是可以衡量
所以現在可以先調節其他引數讓當前條件下的極大似然
y這個類別是我們隨便選的,就算現在情況下可能性已經最好了,但是萬一存在更好的分類
這樣反覆迭代,直到沒有更好的得
3 EM演算法
訓練樣本,就是上文中的點群
在假設條件下求最大似然估計:
此時,想求解引數還有一個未知量y的存在,就算求了導數也是枉費。
於是EM假設每個樣本類別都存在一個分佈
在做一個簡單等價:
這個大於等於是根據一個叫做Jensen不等式得到的。
Jensen不等式就是嚴格凸函式的函式期望小於等於x期望做引數時的函式值。
等於符號成立的條件是引數x是常量。
現在問題變成求
那麼等式成立的條件就是:
又類別的分佈滿足:
於是綜合可得:
1 聚類
簡單回顧一下:
首先,隨機在點群中選取K個點,作為劃分聚落的種子點;
然後,求點群中所有的點到這K個點的距離;
接下來,將離種子點近的點都移動到種子點附近;
最後,不斷重複第二和第三步,直到沒有點需要移動了。
以上只是一個概念的解釋,我想這
https://www.toutiao.com/a6641916717624721933/
2019-01-03 08:00:00
K-means演算法是使用得最為廣泛的一個演算法,本文將介紹K-means 聚類演算法、原理、特點及改進思路。
K-means聚類演算法簡
微信公眾號
關鍵字全網搜尋最新排名
【機器學習演算法】:排名第一
【機器學習】:排名第一
【Python】:排名第三
【演算法】:排名第四
前言
K-Means演算法是無監督的聚類演算法,它實現起來比較簡單,聚類效果也不錯,因此應用很廣泛。K-Means演算法有大量的變體,本文就從最傳統的K-Means演算
K-means聚類是聚類分析中比較基礎的演算法,屬於典型的非監督學習演算法。其定義為對未知標記的資料集,按照資料內部存在的資料特徵將資料集劃分為多個不同的類別,使類別內的資料儘可能接近,類別間的資料相似度比較大。用於衡量距離的方法主要有曼哈頓距離、歐氏距離、切比雪夫距離,其中
#-*- coding: UTF-8 -*-
from numpy import *
def loadDataSet(fileName):#函式的輸入為檔名稱,函式的主要作用是將檔案中的每行內容轉換成浮點型,
# 每行
1 演算法思想
聚類的基本思想是將資料集中的樣本劃分為若干個通常是不相交的子集,每個子集稱為一個”簇”(cluster)。劃分後,每個簇可能有相同對應的概念(性質)。K-均值演算法就是一個使用很廣泛的聚類演算法,其中的K就表示簇的數量,K-means簡單的說就
1.案例:承襲KNN,這個資料依舊是用打鬥次數和接吻次數來界定電影型別,接吻多的是Romance型別的,而打鬥多的是動作電影。
2.問題:現在有一部名字未知的電影,打鬥次數為18次,接吻次數為90 一、簡介
K-Means 是一種非監督學習,解決的是聚類問題。K 代表的是 K 類,Means 代表的是中心,你可以理解這個演算法的本質是確定 K 類的中心點,當你找到了這些中心點,也就完成了聚類。
/*請尊重作者勞動成果,轉載請標明原文連結:*/
/* https://www.cnblogs.com/jpc
1. 代價函式
K-means演算法是比較容易理解的,它屬於無監督學習方法,所以訓練樣本資料不再含有標籤。我們假設有樣本資料x(1),x(2),⋯,x(m)x(1),x(2),⋯,x(m),我們選擇設定KK個聚類中心u1,u2,⋯,uKu1,u2,⋯,uK
一開始的目的是學習十大挖掘演算法(機器學習演算法),並用編碼實現一遍,但越往後學習,越往後實現編碼,越發現自己的編碼水平低下,學習能力低。這一個k-means演算法用Python實現竟用了三天時間,可見編碼水平之低,而且在編碼的過程中看了別人的編碼,才發現自己對
關於視覺化:
《機器學習實戰》書中的一個小錯誤,P22的datingTestSet.txt這個檔案,根據網上的原始碼,應該選擇datingTestSet2.txt這個檔案。主要的區別是最後的標籤,作者原來使用字串‘veryLike’作為標籤,但是Python轉換會出現Val
'''
@description :
演算法優點:
a簡單、易於理解、易於實現、無需估計引數、無需訓練
演算法缺點:
a懶惰演算法,對測試樣本分類時計算量大,記憶體開銷大
b必須制定k值,k值得選擇
機器學習實戰是入手機器學習和python實戰的比較好的書,可惜我現在才開始練習程式碼!先宣告:本人菜鳥一枚,機器學習的理論知識剛看了一部分,python的知識也沒學很多,所以寫程式碼除錯的過程很痛可!但是還是挨個找出了問題所在,蠻開心的!看了很多大牛
歸一化的公式:
newValue = (oldValue - min) / (max - min)
就是把資料歸一化到[0, 1]區間上。
好處:
防止某一維度的資料的數值大小對距離就算產生影響。多個維度的特徵是等權重的,所以不能被數值大小影響。
下面是歸一化特徵值的程式碼
1、基本思想
物以類聚、人以群分,一個例項與它周圍的例項屬於同一類的概率較大。
2、演算法
給定一個訓練資料集,對新輸入的例項,在訓練資料集中找到與該例項最鄰近的k個例項,這k個例項的多數屬於某個類,就
>By joey周琦
正則化
假設目標函式為
J
J, 比如
J
J可以是對數似然函式的負數形式,特徵
i
i的係數為
wi
w_i, 係數向量
w=[w1,...,
> By joey周琦
概述
線性模型一般variance小,bias大;而樹模型一般variance大,bias小
決策樹的優點:具有可讀性,分類速度快
一般包含三個步驟:
特徵選擇
決策樹生成
剪枝
by joey周琦
LR介紹
邏輯迴歸屬於probabilistic discriminative model這一類的分類演算法
probabilistic discriminative mode這類演算法的思路如下: - 直接建模
P(Ck|x)
By joey周琦
常見的分類演算法大致可以分為三類:
直接給一個discriminant function,直接確定輸入feature x的屬於哪一類。這類演算法有SVM
probabilistic discriminative model.該類方法直接給P(C
from numpy import *
import operator
import os
def createDataSet():
group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
labels=['A','A','B','B'] 相關推薦
機器學習演算法之K-means-spark
「AI科技」機器學習演算法之K-means演算法原理及缺點改進思路
機器學習(25)之K-Means聚類演算法詳解
機器學習筆記之K-means聚類
機器學習實戰之k-means聚類_程式碼註釋
機器學習實戰之K-means
機器學習演算法之二:5分鐘上手K-Means
機器學習經典演算法之K-Means
吳恩達機器學習 筆記八 K-means聚類演算法
Python機器學習演算法實踐——k均值聚類(k-means)
機器學習實戰之k-近鄰演算法(3)---如何視覺化資料
機器學習系列之K-近鄰演算法(監督學習-分類問題)
機器學習實戰之K-近鄰演算法總結和程式碼解析
機器學習實戰之k-近鄰演算法(4)--- 如何歸一化資料
機器學習演算法之KNN
機器學習演算法之正則化
機器學習演算法之:決策樹 (decision trees)
機器學習演算法之: 邏輯迴歸 logistic regression (LR)
機器學習演算法之:分類演算法概述
機器學習實戰之K近鄰改進的約會網站程式碼及手寫字型識別程式碼