【每日一問】當我們拿到資料進行建模時,如何選擇更合適的演算法?
datawhale優秀回答者:mashagua,金小楗
目標導向
【每日一問】什麼是k-means演算法?
datawhale優秀回答者:金小楗、強
通俗解釋
聚類演算法有很多種,k-means 是聚類演算法中的最常用的一種,演算法最大的特點是簡單,好理解,運算速度快,但是只能應用於連續型的資料,並且一定要在聚類前需要手工指定要分成幾類。
k-means 聚類演算法的大致意思就是「物以類聚,人以群分」。
首先輸入 k 的值,即我們指定希望通過聚類得到 k 個分組;
從資料集中隨機選取 k 個資料點作為初始大佬(質心);
對集合中每乙個小弟,計算與每乙個大佬的距離,離哪個大佬距離近,就跟定哪個大佬。
這時每乙個大佬手下都聚集了一票小弟,這時候召開選舉大會,每一群選出新的大佬(即通過演算法選出新的質心)。
如果新大佬和老大佬之間的距離小於某乙個設定的閾值(表示重新計算的質心的位置變化不大,趨於穩定,或者說收斂),可以認為我們進行的聚類已經達到期望的結果,演算法終止。
如果新大佬和老大佬距離變化很大,需要迭代3~5步驟。
專業解釋
k-means演算法的基本思想是初始隨機給定k個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然後按平均法重新計算各個簇的質心,
從而確定新的簇心。一直迭代,直到簇心的移動距離小於某個給定的值。
k-means聚類演算法主要分為三個步驟:
(1)為待聚類的點尋找聚類中心;
(2)計算每個點到聚類中心的距離,將每個點聚類到離該點最近的聚類中去;
(3)計算每個聚類中所有點的座標平均值,並將這個平均值作為新的聚類中心;
反覆執行(2)、(3),直到聚類中心不再進行大範圍移動或者聚類次數達到要求為止。
使用k-means需要考慮的問題:
1.k如何確定
2.初始質心的選取
3.距離的度量
4.質心的計算
5.演算法停止條件
6.空聚類的處理
k-means的缺陷:
k-menas演算法試圖找到使平凡誤差準則函式最小的簇。當潛在的簇形狀是凸面的,簇與簇之間區別較明顯,且簇大小相近時,其聚類結果較理想。
該演算法除了要事先確定簇數k和對初始聚類中心敏感外,經常以區域性最優結束,同時對「雜訊」和孤立點敏感,並且該方法不適於發現非凸面形狀的簇或大小差別很大的簇。
k-means演算法的聚類中心的個數k 需要事先給定,但在實際中這個 k 值的選定是非常難以估計的,很多時候,事先並不知道給定的資料集應該分成多少個類別才最合適。
k-means需要人為地確定初始聚類中心,不同的初始聚類中心可能導致完全不同的聚類結果。
k-means ++ 演算法:
k-means++演算法選擇初始聚類中心的基本思想就是:初始的聚類中心之間的相互距離要盡可能的遠。
1.從輸入的資料點集合中隨機選擇乙個點作為第乙個聚類中心;
2.對於資料集中的每乙個點x,計算它與最近聚類中心(指已選擇的聚類中心)的距離d(x);
3.選擇乙個新的資料點作為新的聚類中心,選擇的原則是:d(x)較大的點,被選取作為聚類中心的概率較大;
4.重複2和3直到k個聚類中心被選出來;
5.利用這k個初始的聚類中心來執行標準的k-means演算法。
【每日一問】談談對分類(classification)和**(prediction)的理解,主要步驟有哪些,以及兩者的區別和聯絡。
datawhale優秀回答者:寧靜致遠
一、介紹
分類:輸入樣本資料,輸出對應的類別,將樣本中每個資料對應乙個已知屬性。
**:兩種或者兩種以上的變數之間相互依賴的函式模型,**給定自變數對應的因變數的值。
二、步驟
分類演算法分為兩步:
(1)學習步:通過訓練樣本資料集,建立分類規則
(2)分類步:用已知的測試樣本集評估分類規則的準確率,若準確率可接受,則是使用該規則對除樣本以外的資料(待測樣本集)進行**。
**演算法分兩步:
(1)我們先要基於一定數量的樣本來訓練出乙個訓練模型;
(2)為了判斷這個模型訓練的如何,我們還要對其進行檢測一下;
(3)如果測試的樣本資料與我們想象中的差別太大,那麼我們就要重新進行訓練這個**模型,但是如果我們的**模型符合我們的預先的期望,那麼我們就可以用這個模型進行**的操作.
三、區別
特徵
1.分類
2.回歸**
輸出型別
1.離散資料
2.連續資料
目的
1.尋找決策邊界
2.找到最優擬合線
評價方法
1.精度、混淆矩陣
2.see(sum of square errors)或擬合優度
四、聯絡
分類演算法可以**連續值,但是連續值是以類標籤的概率的形式。
**演算法可以**離散值,但離散值以整數形式表示。
當我們向伺服器post資料時,表單 or JSON
web前端開發中,以post方式向伺服器傳送請求的操作再平常不過。傳送post請求時,若需要傳遞資料,資料是包含在訊息主體中的。http 請求 訊息主體 傳遞資料的方式有兩種 表單和json。使用表單時,資料型別是普通的文字資料,或檔案 大型二進位制資料或者包含非ascii字元的資料 而json是指...
當資料庫變慢時,我們應如何入手
當資料庫變慢時,我們應如何入手 第一章 檢查系統的狀態 1.1 使用sar來檢查作業系統是否存在io問題 1.2 關注記憶體vmstat 1.3 找到使用資源特別大的oracle的session及其執行的語句 1.4 查詢前十條效能差的sql語句 第二章 檢查會話狀態 當應用管理員通告現在應用很慢 ...
資料建模 機器學習之如何進行特徵工程(上)
1 特徵選擇 當資料預處理完成後,我們需要選擇有意義的特徵輸入機器學習的演算法和模型進行訓練。通常來說,從兩個方面考慮來選擇特徵 特徵是否發散 如果乙個特徵不發散,例如方差接近於0,也就是說樣本在這個特徵上基本上沒有差異,這個特徵對於樣本的區分並沒有什麼用。根據特徵選擇的形式又可以將特徵選擇方法分為...