python分类算法_python数据挖掘中的分类算法有哪些?
一直以來,對(duì)于機(jī)器學(xué)習(xí)領(lǐng)域,Python都是人們津津樂道的話題,大家知道我們?cè)谟胮ython學(xué)習(xí)機(jī)器技術(shù)時(shí)候,用到的方法內(nèi)容和一般情況下的是一樣的嗎?想必,了解過的小伙伴一定是知道有哪些的,不知道的小伙伴也不必?fù)?dān)心,如果剛好你正在學(xué)習(xí)機(jī)器技術(shù),那就來看下以下內(nèi)容,對(duì)大家一定有幫助哦~
一、KNN算法
二、算法過程
1.讀取數(shù)據(jù)集
2.處理數(shù)據(jù)集數(shù)據(jù) 清洗,采用留出法hold-out拆分?jǐn)?shù)據(jù)集:訓(xùn)練集、測(cè)試集
三、實(shí)現(xiàn)KNN算法類:
1)遍歷訓(xùn)練數(shù)據(jù)集,離差平方和計(jì)算各點(diǎn)之間的距離
2)對(duì)各點(diǎn)的距離數(shù)組進(jìn)行排序,根據(jù)輸入的k值取對(duì)應(yīng)的k個(gè)點(diǎn)
3)k個(gè)點(diǎn)中,統(tǒng)計(jì)每個(gè)點(diǎn)出現(xiàn)的次數(shù),權(quán)重為距離的導(dǎo)數(shù),得到最大的值,該值的索引就是我們計(jì)算出的判定類別
四、kNN的python實(shí)現(xiàn)import numpy as np
#一個(gè)最簡(jiǎn)單的KNN
class KNN():
def __init__(self):
self.model = {}#存儲(chǔ)各個(gè)類別的訓(xùn)練樣本的特征,key為類別標(biāo)簽,value是一個(gè)list,元素為樣本的特征向量
self.training_sample_num = {}#存儲(chǔ)訓(xùn)練數(shù)據(jù)中,各個(gè)類別的數(shù)量
#訓(xùn)練模型,輸入是標(biāo)簽列表,和對(duì)應(yīng)的輸入數(shù)據(jù)列表
def fit(self, X, Y):
for i in range(len(Y)):
#將訓(xùn)練數(shù)據(jù)按照類別分組
if Y[i] in self.model:
self.model[Y[i]].append(X[i])
else:
self.model[Y[i]] = [X[i]]
#各個(gè)類別的樣本總數(shù)
self.training_sample_num[Y[i]] = self.training_sample_num.get(Y[i], 0) + 1
#預(yù)測(cè)/判斷一個(gè)樣本的類別。這里模仿sklearn的風(fēng)格,允許輸入單個(gè)樣本,也允許輸入多個(gè)樣本
好啦,這就是關(guān)于分類算法的使用了,如果大家對(duì)機(jī)器學(xué)習(xí)非常感興趣的話,就可以好好學(xué)習(xí)關(guān)于這些內(nèi)容了哦~
總結(jié)
以上是生活随笔為你收集整理的python分类算法_python数据挖掘中的分类算法有哪些?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot_yml配置
- 下一篇: 在python中可以用什么关键字来声明一