20191010 分類與回歸 KNN進行回歸問題

2021-09-28 11:55:08 字數 2129 閱讀 1413

classification 和 regression

分類和回歸的問題

回歸是求topk和value的平均值

分類時topk**現最多的類別

np中有乙個廣播矩陣,可以進行向量的加減

import numpy as np

feature = np.array([

[-121,47],

[-121.2,46.5],

[-122,46.3],

[-120.9,46.7],

[-120.1,46.2]

])label = np.array([

200,210,250,215,232

])# predictpoint 是**點

predictpoint = np.array([-121,46])

# 用numpy中的ndarray可以進行向量的減法

matrixtemp = feature - predictpoint

# numpy的square方法可以使向量每個元素進行平方

matrixtemp2 = np.square(matrixtemp)

print(matrixtemp2)

# 按每行進行相加 計算向量平方和

print(np.sum(matrixtemp2, axis=1))

# 然後開方,計算歐式距離

print(np.sqrt(np.sum(matrixtemp2, axis=1)))

sortindex = np.argsort(np.sqrt(np.sum(matrixtemp2, axis=1)))

labelsort = label[sortindex]

print(labelsort)

k =3

price = np.sum(labelsort[0:k])/k

print("**的房價是{}萬".format(price))

標準資料集,第一行標籤

剩下才是資料

需要skiplows = 1

跳過第一行的名稱標籤

usecols 使用哪幾列

import numpy as np

def knn(k,predictpoint,feature,label):

matrixtemp = feature - predictpoint

matrixtemp2 = np.square(matrixtemp)

print(matrixtemp2)

print(np.sum(matrixtemp2, axis=1))

print(np.sqrt(np.sum(matrixtemp2, axis=1)))

sortindex = np.argsort(np.sqrt(np.sum(matrixtemp2, axis=1)))

labelsort = label[sortindex]

print(labelsort)

price = np.sum(labelsort[0:k]) / k

return price

if __name__ =="__main__":

feature = np.loadtxt("kc_house_data.csv",delimiter=",",skiprows=1,usecols=(17,18,6))

label = np.loadtxt("kc_house_data.csv",delimiter=",",skiprows=1,usecols=(2))

print(feature)

print(label)

predictpoint = np.array([47.5112,-122.257,5650])

price = knn(450,predictpoint,feature,label)

print(price)

歸一化不能使用的時候,

大多數情況最好使用標準化

以前就說過,避免缺失值和異常值

如果資料是正態分佈可以使用歸一化

所以使用標準化對所有的資料集進行處理都是可行的。

分類與回歸

分類與回歸問題 在用dbn 作手寫體識別實驗的時候,hinton 2006 年發表的 a fast learning algorithm for deep belief nets 所對應的 裡面用到 softmax 進行多分類。現就所查的資料和自己所理解的,整理這篇 blog softmax回歸模型...

分類與回歸

分類 classification 與回歸 regression 的區別在於輸出變數的型別。通俗理解,定量輸出稱為回歸,或者說是連續變數 定性輸出稱為分類,或者說是離散變數 回歸問題的 結果是連續的,通常是用來 乙個值,如 房價 未來的天氣情況等等。乙個比較常見的回歸演算法是線性回歸演算法 lr,l...

分類,聚類,回歸

聚類 所謂聚類,即根據相似性原則,將具有較高相似度的資料物件劃分至同一類簇,將具有較高相異度的資料物件劃分至不同類簇。聚類與分類最大的區別在於,聚類過程為無監督過程,即待處理資料物件沒有任何先驗知識,而分類過程為有監督過程,即存在有先驗知識的訓練資料集。聚類 clustering 是分類 class...