20191010——分类与回归 KNN进行回归问题

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)

归一化不能使用的时候,
大多数情况最好使用标准化

在这里插入图片描述

以前就说过,避免缺失值和异常值

如果数据是正态分布可以使用归一化
所以使用标准化对所有的数据集进行处理都是可行的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值