九、k-近鄰算法

1 簡要說明

背景:各個(gè)酒店的住房記錄,數(shù)據(jù)中含有row_id,x,y(x,y給出酒店位置),accurary(酒店定位準(zhǔn)確性),time(簽到時(shí)間),place_id,用k-近鄰算法預(yù)測(cè)進(jìn)行地點(diǎn)預(yù)測(cè)
ps:沒找到數(shù)據(jù)T-T
首先寫出幾點(diǎn)步驟:
1截亦、需要標(biāo)準(zhǔn)化處理
2、由于數(shù)據(jù)量大柬讨,節(jié)省時(shí)間崩瓤,x,y要縮小
3、時(shí)間戳轉(zhuǎn)為(年踩官,月却桶,日,周蔗牡,時(shí)分秒)颖系,當(dāng)做新的特征
4、幾千-幾萬辩越,少于指定簽到人數(shù)的位置刪除

2 導(dǎo)入模塊

from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

3 編寫函數(shù)

def knn():
    #讀取數(shù)據(jù)
    data = pd.read_csv('train.csv')
    #處理數(shù)據(jù)
    #1嘁扼、縮小數(shù)據(jù)
    data.query('x>1.0 & x<1.25 & y>2.5 & y<2.75')
    #處理時(shí)間  
    time_value = pd.to_datetime(data['time'],unit='s')#最小單位為秒
    #把日期格式轉(zhuǎn)為元組,好取里面的‘year’,‘month’,‘day’,‘hour’,‘second’,‘weekday’黔攒。趁啸。。
    time_value = pd.DatetimeIndex(time_value)
    #3亏钩、構(gòu)造一些特征
    data['day']=time_value.day
    data['hour']=time_value.hour
    data['weekday']=time_value.weekday
    #把時(shí)間戳特征time刪除
    data=data.drop(['time'],axis=1)
    #把簽到數(shù)量少于n個(gè)目標(biāo)位置刪除
    place_count=data.groupby('place_id').count()
    tf = place_count[place_count.row_id>3].reset_index()
    data=data[data['place_id'].isin(tf.place_id)]
    #取出特征值和目標(biāo)值
    y = data['place_id']
    x = data.drop(['place_id'],axis=1)
    #數(shù)據(jù)分割
    x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25)
    #特征工程(標(biāo)準(zhǔn)化)
    std=StandardScaler()
    #對(duì)測(cè)試集和訓(xùn)練集的特征值標(biāo)準(zhǔn)化
    x_train = std.fit_transform(x_train)
    x_test = std.transform(x_test)
    #進(jìn)行算法流程
    knn=KNeighborsClassifier(n_neighbors=5)
    knn.fit(x_train,y_train)
    #得出預(yù)測(cè)結(jié)果
    y_predict = knn.predict(x_test)
    print('預(yù)測(cè)的目標(biāo)簽到位置為:',y_predict)
    #得出測(cè)試集上的準(zhǔn)確率
    print('預(yù)測(cè)的準(zhǔn)確率',knn.score(x_test,y_test))
if __name__=='__main__':
    knncls()

4 簡單的作業(yè)

對(duì)iris數(shù)據(jù)集進(jìn)行分析
首先導(dǎo)入數(shù)據(jù)

from sklearn.datasets import load_iris
iris = load_iris()
x = iris.data
y = iris.target

數(shù)據(jù)劃分

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.25)

knn算法

from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV
def knncls():
    knn = KNeighborsClassifier(n_neighbors=5)
    knn.fit(x_train,y_train)
    y_predict=knn.predict(x_test)
    print('預(yù)測(cè)結(jié)果:',y_predict)
    score = knn.score(x_test,y_test)
    print('準(zhǔn)確性:',score)
if __name__=='__main__':
    knncls()

輸出:
預(yù)測(cè)結(jié)果: [2 2 0 0 2 0 2 1 2 0 2 1 1 2 2 1 0 2 0 0 0 1 0 0 1 2 1 1 1 2 2 1 1 2 2 2 0
0]
準(zhǔn)確性: 0.9210526315789473

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末莲绰,一起剝皮案震驚了整個(gè)濱河市欺旧,隨后出現(xiàn)的幾起案子姑丑,更是在濱河造成了極大的恐慌,老刑警劉巖辞友,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栅哀,死亡現(xiàn)場(chǎng)離奇詭異震肮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)留拾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門戳晌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人痴柔,你說我怎么就攤上這事沦偎。” “怎么了咳蔚?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵豪嚎,是天一觀的道長。 經(jīng)常有香客問我谈火,道長侈询,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任糯耍,我火速辦了婚禮扔字,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘温技。我一直安慰自己革为,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布舵鳞。 她就那樣靜靜地躺著篷角,像睡著了一般。 火紅的嫁衣襯著肌膚如雪系任。 梳的紋絲不亂的頭發(fā)上恳蹲,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音俩滥,去河邊找鬼嘉蕾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛霜旧,可吹牛的內(nèi)容都是我干的错忱。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼挂据,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼以清!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起崎逃,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤掷倔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后个绍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勒葱,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浪汪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凛虽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片死遭。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖凯旋,靈堂內(nèi)的尸體忽然破棺而出呀潭,到底是詐尸還是另有隱情,我是刑警寧澤至非,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布蜗侈,位于F島的核電站,受9級(jí)特大地震影響睡蟋,放射性物質(zhì)發(fā)生泄漏踏幻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一戳杀、第九天 我趴在偏房一處隱蔽的房頂上張望该面。 院中可真熱鬧,春花似錦信卡、人聲如沸隔缀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猾瘸。三九已至,卻和暖如春丢习,著一層夾襖步出監(jiān)牢的瞬間牵触,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工咐低, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留揽思,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓见擦,卻偏偏與公主長得像钉汗,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鲤屡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容