2 1 2 3 K近鄰(回歸)

2021-09-11 22:11:18 字數 2116 閱讀 2274

#美國波士頓地區房價描述

from sklearn.datasets import load_boston

boston=load_boston()

print(boston.descr)

#資料分割

from sklearn.cross_validation import train_test_split

import numpy as np

x=boston.data

y=boston.target

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.25,random_state=33)

#分析回歸目標值的差異

print('最大值:',np.max(boston.target))

print('最小值:',np.min(boston.target))

print('平均值:',np.mean(boston.target))

#發現目標房價之間的差異較大,需要對特徵和目標值進行標準化處理

from sklearn.preprocessing import standardscaler

ss_x=standardscaler()

ss_y=standardscaler()

x_train=ss_x.fit_transform(x_train)

x_test=ss_x.transform(x_test)

y_train=ss_y.fit_transform(y_train.reshape(-1,1))

y_test=ss_y.transform(y_test.reshape(-1,1))

#k近鄰回歸器

from sklearn.neighbors import kneighborsregressor

#初始化k近鄰回歸器,並且調整配置,使得**的方式為平均回歸

uni_knr=kneighborsregressor(weights='uniform')

uni_knr.fit(x_train,y_train)

uni_knr_y_predict=uni_knr.predict(x_test)

#初始化k近鄰回歸器,並且調整配置,使得**的方式為根據距離,加權回歸

dis_knr=kneighborsregressor(weights='distance')

dis_knr.fit(x_train,y_train)

dis_knr_y_predict=dis_knr.predict(x_test)

#對不同配置的模型的**進行**效能評估

print('uni_knr 模型自帶評分機制:',uni_knr.score(x_test,y_test))

print('r方:',r2_score(ss_y.inverse_transform(y_test),ss_y.inverse_transform(uni_knr_y_predict)))

print('均方誤差mse:',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(uni_knr_y_predict)))

print('平均絕對誤差mae:',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(uni_knr_y_predict)))

print('dis_knr 模型自帶評分機制:',dis_knr.score(x_test,y_test))

print('r方:',r2_score(ss_y.inverse_transform(y_test),ss_y.inverse_transform(dis_knr_y_predict)))

print('均方誤差mse:',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(dis_knr_y_predict)))

print('平均絕對誤差mae:',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(dis_knr_y_predict)))

k 近鄰演算法

此文章參考機器學習實戰一書,具體的理論知識可以參考該書。本文的初衷只是為了做乙個複習,將學過的知識加以整理,其中不免有一定的錯誤。2.k 近鄰演算法的原理介紹 k 近鄰演算法通過測量不同的特徵值之間的距離進行分類。它的工作原理如下 存在乙個樣本的資料集合,也成為訓練樣本集合。並且樣本集中的每個資料都...

走進K近鄰

k最近鄰 k nearest neighbour,knn 分類演算法的思路是 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。k近鄰演算法的想法很簡單,類似於多數表決,關鍵點是參與多數表決的人是離你最近的k個人。給定乙個例項,首先從訓...

K 近鄰演算法

k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類。優點 精度高 對異常值不敏感 無資料輸入假定 缺點 計算複雜度高 空間複雜度高 適用資料範圍 數值型和標稱型 工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入...