1. 程式人生 > >機器學習(6)K近鄰演算法

機器學習(6)K近鄰演算法

k-近鄰,通過離你最近的來判斷你的類別

例子:

定義:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近的樣本中大多數屬於某一類別),則該樣本屬於這個類別

K近鄰需要做標準化處理

例如:

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier

def knn():
'''
k近鄰預測消費花費
:return:
'''
#讀取資料
data=pd.read_csv('data.csv')
# print(data.info())
data=data[['age','ageg','num','cost']]
# print(data)
#對資料的處理
y=data[['cost']]
x=data.drop('cost',axis=1)
#劃分訓練集合測試集

x_train,x_text,y_train,y_text=train_test_split(x,y,test_size=0.25)
#標準化
ss=StandardScaler()
x_train=ss.fit_transform(x_train)
x_text=ss.transform(x_text)
#訓練和預測
y_train=y_train.astype(int)
kn=KNeighborsClassifier(n_neighbors=5)
kn.fit(x_train,y_train)

y_predict=kn.predict(x_text)
print('預測值',y_predict)
print("++" * 100)
x_text=np.array(x_text)
print('原本的測試值',x_text)
print('得分:',kn.score(x_text,y_text.astype(int)))
#訓練,預測

kn=KNeighborsClassifier()


# data=data['id','']
#資料處理

#特徵工程
if __name__ == '__main__':
knn()