K近邻KNeighborsRegressor--StandardScaler标准化--mean_squared_error均方根误差 学习笔记

本文主要是介绍K近邻KNeighborsRegressor--StandardScaler标准化--mean_squared_error均方根误差 学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • np.abs()函数
    • pd.sample()参数含义
    • pd.str同时去掉分隔符和货币符号
    • standarscaler注意点
    • scipy.spatial中distance距离工具
      • 两点之间的距离
      • 两个数据之间的距离
    • 使用Sklearn计算距离
    • sklearn 计算均方根误差
    • sklearn标准化
  • K近邻模型
    • 多变量knn模型测试
    • K近邻

np.abs()函数

np.abs() : 计算数值各元素运算的绝对值

import numpy as np
np.abs([1,-2,3,-4])Out:
array([1, 2, 3, 4])
  • np.sqrt() : 计算平方根
  • np.square() : 计算平方

pd.sample()参数含义

DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)[source]
DataFrame可以是Series、DataFrame

  • n的含义是抽样的个数,是整数;frac是浮点数,是抽样的比例
  • replace为True含义为数据本身改变,为False含义为数据本身未改变 , 需要定义新变量接收
  • weights的含义是给抽样所在axis的每个元素赋值抽样权重,所以weights的长度必须和所在axis的长度相同,不然会报错,缺失值的weights会被设置为0,如果weights加和不等于1,会被normalized到加和为1,inf和-inf值不被允许
  • axis的含义是抽样的方向,axis=0,对行进行抽样,axis=1,对列进行抽样
  • random_state是用来复现结果的

pd.str同时去掉分隔符和货币符号

DataFrame数据类型有千位分隔符和货币符 , 即为"$10,000.00"时 , 怎么转换为int或者float类型 :

  • df.str.replace("$|," , “”).astype(float)

standarscaler注意点

  • StandarScaler().fit_transform(a) 中的a不能直接是一个DataFrame , 而要是DataFrame中的具体几列

scipy.spatial中distance距离工具

from scipy.spatial import distance

两点之间的距离

  • 使用distance.euclidean(a,b)

两个数据之间的距离

  • 使用distance.cdist ( m[a] , n[b] )

使用Sklearn计算距离

from sklearn.neighbors import KNeigborsRegressor
knn = KNeighborsRegressor()
cols = ['A','B']
knn.fit(train_data[cols],train_data['C'])
ret = knn.predict(test_df[cols]

sklearn 计算均方根误差

from sklearn.metrics import mean_squared_error
mse = mean_squared_error( test_data['C'], ret)
rmse = mse ** (1/2)

sklearn标准化

from sklearn.preprocessing import StandarScater
data[features] = StandardScaler().fit_transform(data[features])

features为数据data的columns

K近邻模型

多变量knn模型测试

import pandas as pd
from sklearn.preprocessing import StandardScalerdc_data=pd.read_csv('listings.csv')
features=['accommodates','bedrooms','bathrooms','beds','price','minimum_nights','maximum_nights','number_of_reviews']
dc_data = dc_data[features]
dc_data = dc_data.dropna() #去掉NaN数据
dc_data['price'] = dc_data.price.str.replace('\$|,','').astype(float) #将货币千分位数转换为float类数据
dc_data[features] = StandardScaler().fit_transform(dc_data[features]) #标准化
normalized_data = dc_data# 建立训练集和测试集
norm_train_df = normalized_data.copy().iloc[:2750]
norm_test_df = normalized_data.copy().iloc[2750:]from scipy.spatial import distancedef predict_price_multivariate(new_data_value,feature_columns):temp_df = norm_train_dftemp_df['distance'] = distance.cdist(temp_df[feature_columns],[new_data_value[feature_columns]])temp_df = temp_df.sort_values('distance')knn_5 = temp_df.price.iloc[:5]predicted_price = knn_5.mean()return predicted_price
# K近邻预测价格的函数cols = ['accommodates', 'bathrooms']
norm_test_df['predicted_price'] = norm_test_df[cols].apply(predict_price_multivariate,feature_columns=cols,axis=1)
norm_test_df['squared_error'] = (norm_test_df['predicted_price']-norm_test_df['price'])**2
mse = norm_test_df['squared_error'].mean()
rmse = mse ** (1/2)
# 最终获得RMSE均方根误差值

0.15274960512174854

K近邻

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsRegressorfeatures = ['accommodates','bedrooms','bathrooms','beds','price','minimum_nights','maximum_nights','number_of_reviews']
dc_data = pd.read_csv('listings.csv')
dc_data = dc_data[features]
dc_data['price'] = dc_data.price.str.replace('\$|,','').astype(float)
dc_data = dc_data.dropna()dc_data[features] = StandardScaler().fit_transform(dc_data[features])
normalized_data = dc_data
# 标准化norm_train_df = normalized_data.copy().iloc[:2750]
norm_test_df = normalized_data.copy().iloc[2750:]cols = ['accommodates','bedrooms','bathrooms','beds','minimum_nights','maximum_nights','number_of_reviews']
knn = KNeighborsRegressor(n_neighbors=4) #默认n_neighbors值为5
knn.fit(norm_train_df[cols], norm_train_df['price'])
four_features_predictions = knn.predict(norm_test_df[cols])from sklearn.metrics import mean_squared_error
four_features_mse = mean_squared_error(norm_test_df['price'],four_features_predictions)
four_features_rmse = four_features_mse ** (1/2)
four_features_rmse

0.823713617207827

这篇关于K近邻KNeighborsRegressor--StandardScaler标准化--mean_squared_error均方根误差 学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/304805

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件