精华内容
下载资源
问答
  • 2022-02-08 16:05:49

    python使用numpy包编写自定义函数计算SMAPE(对称平均绝对百分比误差)指标Symmetric mean absolute percentage error (SMAPE)、SMAPE指标解读、SMAPE指标使用的注意事项

    目录

    更多相关内容
  • Python使用numpy包编写自定义函数计算平均绝对误差(MAE、Mean Absolute Error)、评估回归模型和时间序列模型、解读MAE

    Python使用numpy包编写自定义函数计算平均绝对误差(MAE、Mean Absolute Error)、评估回归模型和时间序列模型、解读MAE

    目录

    展开全文
  • 我们要编程计算所选直线的平均平方误差(MSE), 即数据集中每个点到直线的Y方向距离的平方的平均数,表达式如下: MSE=1n∑i=1n(yi−mxi−b)2 最初麻烦的写法 # TODO 实现以下函数并输出所选直线的MSE def ...
  • numpy的版本(平均绝对偏差)

    千次阅读 2021-01-14 14:26:53
    这里有一个量化的NumPy的方法 -# From this post : http://stackoverflow.com/a/40085052/3293881def strided_app(a, L, S): # Window len = L, Stride len/stepsize = Snrows = ((a.size-L)//S)+1n = a.strides[0]...

    这里有一个量化的NumPy的方法 -

    # From this post : http://stackoverflow.com/a/40085052/3293881

    def strided_app(a, L, S): # Window len = L, Stride len/stepsize = S

    nrows = ((a.size-L)//S)+1

    n = a.strides[0]

    return np.lib.stride_tricks.as_strided(a, shape=(nrows,L), strides=(S*n,n))

    # From this post : http://stackoverflow.com/a/14314054/3293881 by @Jaime

    def moving_average(a, n=3) :

    ret = np.cumsum(a, dtype=float)

    ret[n:] = ret[n:] - ret[:-n]

    return ret[n - 1:]/n

    def mad_numpy(a, W):

    a2D = strided_app(a,W,1)

    return np.absolute(a2D - moving_average(a,W)[:,None]).mean(1)

    运行测试 -

    In [617]: data = np.random.randint(0,9,(10000))

    ...: df = pd.DataFrame(data)

    ...:

    In [618]: pandas_out = pd.rolling_apply(df,90,mad).values.ravel()

    In [619]: numpy_out = mad_numpy(data,90)

    In [620]: np.allclose(pandas_out[89:], numpy_out) # Nans part clipped

    Out[620]: True

    In [621]: %timeit pd.rolling_apply(df,90,mad)

    10 loops, best of 3: 111 ms per loop

    In [622]: %timeit mad_numpy(data,90)

    100 loops, best of 3: 3.4 ms per loop

    In [623]: 111/3.4

    Out[623]: 32.64705882352941

    巨大32x+加速有过糊涂大熊猫的解决方案!

    展开全文
  • 模型评价:回归模型的常用评价指标1) ...模型越准确3) 较为好解释的评价指标:平均绝对误差(MAE)指标解释:所有样本的样本误差的绝对值的均值指标解读:平均绝对误差的单位与因变量单位一致,越接近0,模型越准确4...

    模型评价:回归模型的常用评价指标

    1) 样本误差:衡量模型在一个样本上的预测准确性

    样本误差 = 样本预测值 - 样本实际值

    2) 最常用的评价指标:均误差方(MSE)

    指标解释:所有样本的样本误差的平方的均值

    指标解读:均误差方越接近0,模型越准确

    3) 较为好解释的评价指标:平均绝对误差(MAE)

    指标解释:所有样本的样本误差的绝对值的均值

    指标解读:平均绝对误差的单位与因变量单位一致,越接近0,模型越准确

    4)平均绝对误差的衍生指标:平均绝对比例误差(MAPE)

    指标解释:所有样本的样本误差的绝对值占实际值的比值

    指标解读:指标越接近与0,模型越准确

    5)模型解释度:R squared R方 r2

    指标解释:应变量的方差能被自变量解释的程度

    指标解读:指标越接近1,则代表自变量对于应变量的解释度越高

    使用sklearn查看回归模型的各项指标

    1) 加载数据

    import pandas as pd

    import matplotlib.pyplot as plt

    import os

    os.chdir(r'C:\Users\86177\Desktop')

    # 样例数据读取

    df = pd.read_excel('realestate_sample_preprocessed.xlsx')

    # 根据共线性矩阵,保留与房价相关性最高的日间人口,将夜间人口和20-39岁夜间人口进行比例处理

    def age_percent(row):

    if row['nightpop'] == 0:

    return 0

    else:

    return row['night20-39']/row['nightpop']

    df['per_a20_39'] = df.apply(age_percent,axis=1)

    df = df.drop(columns=['nightpop','night20-39'])

    # 数据集基本情况查看

    print(df.shape)

    print(df.dtypes)

    print(df.isnull().sum())

    –> 输出的结果为:(这里直接加载数据并对共线性数据进行处理)

    (898, 9)

    id int64

    complete_year int64

    average_price float64

    area float64

    daypop float64

    sub_kde float64

    bus_kde float64

    kind_kde float64

    per_a20_39 float64

    dtype: object

    id 0

    complete_year 0

    average_price 0

    area 0

    daypop 0

    sub_kde 0

    bus_kde 0

    kind_kde 0

    per_a20_39 0

    dtype: int64

    2) 划分数据集

    x = df[['complete_year','area', 'daypop', 'sub_kde',

    'bus_kde', 'kind_kde','per_a20_39']]

    y = df['average_price']

    print(x.shape)

    print(y.shape)

    –> 输出的结果为:(创建模型前需要将数据集划分好,查看数据维度)

    (898, 7)

    (898,)

    3) 建立回归模型

    之前提到的Pipeline模型工作流就可以直接使用了,将要执行的工作流程全部封装在Pipeline中,具体的有:

    数据标准化

    StandardScaler()

    数据纠偏

    PowerTransformer()

    变量拓展

    PolynomialFeatures(degree=3)

    ,样本值为1000,特征有7个,这里选择

    degree=3

    线性回归中选择了

    lasso

    回归,里面的

    LassoCV(alphas=(list(np.arange(8, 10) * 10)

    ,可以实现自动训练出最优的

    alpha

    值带入模型中

    import numpy as np

    from sklearn.linear_model import LinearRegression, LassoCV

    from sklearn.model_selection import KFold

    from sklearn.preprocessing import StandardScaler, PowerTransformer

    from sklearn.preprocessing import PolynomialFeatures

    from sklearn.pipeline import Pipeline

    # 构建模型工作流

    pipe_lm = Pipeline([

    ('sc',StandardScaler()),

    ('power_trans',PowerTransformer()),

    ('polynom_trans',PolynomialFeatures(degree=3)),

    ('lasso_regr', LassoCV(alphas=(

    list(np.arange(8, 10) * 10)

    ),

    cv=KFold(n_splits=3, shuffle=True),

    n_jobs=-1))

    ])

    print(pipe_lm)

    –> 输出的结果为:

    Pipeline(memory=None,

    steps=[('sc',

    StandardScaler(copy=True, with_mean=True, with_std=True)),

    ('power_trans',

    PowerTransformer(copy=True, method='yeo-johnson',

    standardize=True)),

    ('polynom_trans',

    PolynomialFeatures(degree=3, include_bias=True,

    interaction_only=False, order='C')),

    ('lasso_regr',

    LassoCV(alphas=[80, 90], copy_X=True,

    cv=KFold(n_splits=3, random_state=None, shuffle=True),

    eps=0.001, fit_intercept=True, max_iter=1000,

    n_alphas=100, n_jobs=-1, normalize=False,

    positive=False, precompute='auto', random_state=None,

    selection='cyclic', tol=0.0001, verbose=False))],

    verbose=False)

    4) 查看模型表现

    import warnings

    from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

    warnings.filterwarnings('ignore')

    pipe_lm.fit(x,y)

    y_predict = pipe_lm.predict(x)

    print(f'mean squared error is: {mean_squared_error(y,y_predict)}')

    print(f'mean absolute error is: {mean_absolute_error(y,y_predict)}')

    print(f'R Squared is: {r2_score(y,y_predict)}')

    # 计算MAPE

    check = df[['average_price']]

    check['y_predict'] = pipe_lm.predict(x)

    check['abs_err'] = abs(check['y_predict']-check['average_price'] )

    check['ape'] = check['abs_err']/check['average_price']

    ape = check['ape'].mean()

    print(f'mean absolute percent error is: {ape}')

    –> 输出的结果为:(MAPE需要手动单独计算,没有模块可以使用)

    mean squared error is: 27731808.3971612

    mean absolute error is: 3764.8763555076

    R Squared is: 0.671538868244777

    mean absolute percent error is: 0.16143438261828635

    最后可以看一下

    check

    数据

    average_pricey_predictabs_errape

    033464.00040132.9811806668.9811800.199288

    138766.00034522.8543224243.1456780.109455

    233852.00032718.5080301133.4919700.033484

    339868.00039242.949615625.0503850.015678

    442858.00039242.9496153615.0503850.084349

    ...............

    89340113.00039559.520171553.4798290.013798

    89441806.00048224.3538206418.3538200.153527

    89551895.37537610.72715214284.6478480.275259

    89634546.00044010.8965349464.8965340.273980

    89733595.00032194.0551271400.9448730.041701

    898 rows × 4 columns

    展开全文
  • 计算你的折叠中的训练和测试错误,然后使用列表来附加结果。最后,绘制结果执行以下操作:from sklearn.neural_network import MLPRegressorfrom sklearn.metrics import mean_absolute_errorimport numpy as npfrom...
  • ", sum(absError) / len(absError))#平均绝对误差MAE aDeviation = [] aMean = sum(a) / len(a)#a平均值 for val in a: aDeviation.append((val - aMean) * (val - aMean)) print("a efficiency = ", 1-sum...
  • 我尝试在我的随机林代码中测量MAPE(平均绝对百分比误差)值。MAE值为7.5。当我试图计算MAPE时,它输出:Accuracy: -inf %这是我计算MAPE的代码。如何使它工作,或者为什么它不计算一个值。在^{pr2}$以下是值:errors:...
  • Numpy不能对它们做太多的处理,并且您可能为它们生成的任何代码都将总是不可靠和缓慢的,因为numpy不是这样工作的。它将它们转换为object类型:Samplearray([[1, 2, 3], [1, 2]], dtype=object)几乎没有numpy函数在...
  • python使用numpy包编写自定义函数计算MAPE(平均绝对百分比误差)指标mean absolute percentage error (MAPE)、MAPE指标解读、MAPE指标使用的注意事项
  • 导入模块首先,让我们导入所有相关模块/函数,这些模块/函数将在本文列出的各种方法中使用-from skimage.util import view_as_windowsfrom skimage.feature import match_templateimport cv2from cv2 import ...
  • Python代码实现相对误差公式计算

    万次阅读 2019-05-09 15:47:19
    Python代码实现相对误差公式计算 代码: # 相对误差 def mean_relative_error(y_true, y_pred,): import numpy as np relative_error = np.average(np.abs(y_true - y_pred) / y_true, axis=0) return ...
  • import numpy as np from sklearn import metrics # 定义MAPE def mape(y_true, y_pred): return np.mean(np.abs((y_pred - y_true) / y_true)) * 100 # MSE print(metrics.mean_squared_error(y_true, y_pred)...
  • 对于回归预测结果,通常会有平均绝对误差、平均绝对百分比误差、均方误差等多个指标进行评价。这里,我们先介绍最常用的3个 目录 平均绝对误差(MAE) 均方误差(MSE):均方根误差(RMSE)​ 平均绝对百分比...
  • Python科学计算:用NumPy快速处理数据

    千次阅读 2020-08-17 14:26:15
    我来分享一下数据分析中 Numpy 库的使用,本文内容较多,不可能每段代码的输出过程、输出结果分析这显然工作量不是一点点。但我都结合了大量的代码块,希望小伙伴动手运行代码并分析所得到的结果。当你能做到这点的...
  • python科学计算之numpy

    2021-02-23 23:39:39
    python科学计算之numpy numpy:科学计算包,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,并可与C++/Fortran语言无缝结合。树莓派Python v3默认安装已经包含了...
  • Python数据可视化:如何创建误差

    千次阅读 2020-12-06 05:18:39
    一图胜千言,使用Python的matplotlib库,可以快速创建高质量的图形。这是Python数据可视化的系列短篇,针对初级和中级用户,将理论和示例代码相结合,使用matplotlib, seaborn, plotly等工具创建不同主题的图表。该...
  • python实现代码 # -*- coding: utf-8 -*- import math def get_average(records): """ 平均值 """ return sum(records) / len(records) def get_...
  • 通过使用计算图,可以直观地把握计算过程。 计算图的节点是由局部计算构成的。局部计算构成全局计算。 计算图的正向传播进行一般的计算。通过计算图的反向传播,可以计算各个节点的导数。 通过将神经网络的组成...
  • import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.stats import pearsonr freq = 'D' t0 = '2020-01-01' data_length = 7*10 num_ts = 3 period = 7 fit_series, origin_...
  • 本文将教你如何使用 scikit-learn 库在Python中创建、训练和测试你的第一个线性、逻辑回归机器学习模型,本文适合大部分的新人小白。线性回归机器学习模型1.要使用的数据集由于线性回归是我们在本文中学习的第一个...
  • python提供的能提供数组与矩阵运算的扩展库,简便快捷,运用为主 二、数组: 1.数组创建: 2.数组元素修改: 3.数组的运算: 4.数组元素访问与排序等操作: 5.数组的运用: 三、矩阵:matrix...
  • 使用最小二乘法进行线性回归,采用均方误差来表示误差使用梯度下降法进行最小化误差。 实验内容(表格区域可拉长) (1)已知样本输入和标签如x.txt和y.txt所示,试使用Python求出i.) y=2x+2;ii.) y=x+3;iii.)y ...
  • 1) 样本误差:衡量模型在一个样本上的预测准确性         样本误差 = 样本预测值 - 样本实际值 2) 最常用的评价指标:均误差方(MSE)         指标解释:所有...
  • VK来源|Analytics Vidhya概述学习什么是损失函数以及它们如何在机器学习算法中工作损失函数实际上是我们经常使用的技术的核心本文介绍了多种损失函数与它们的工作原理以及如何使用Python对它们进行编程介绍想象一下-...
  • import numpy as np arr = [100,98,87,65,82,99,92,99,100] arr1 =[35,34,30,24,28,35,32,34,35] #求均值 arr_mean = np.mean(arr) #求方差 arr_var = np.var(arr) #求标准差 arr_std = np.std(arr,ddof=1) #求...
  • 误差列表将包含每个时期的平均绝对误差(MAE) ,这个极限将描述一个向量应该被分类为一个向量,元素10作为第一个元素而不是。然后,还有一些变量可以用来存储真实阳性、假阳性、真实阴性和假阴性的数量。 步骤4.2: ...
  • python数据容器专题

    2020-12-24 16:07:40
    python基础知识专题 - 列表、元组、集合、字典实例教程(一)列表 若纠正错误请联系博主:李俊才 邮箱:291148484@163.com 希望对大家所有帮助! 1、列表 1.1 列表的创建、切片 1.1.1 创建列表 【eg1-1】通过"[]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,782
精华内容 1,112
关键字:

python使用numpy 平均绝对误差