[Day29]懒惰的人是时间的奴隶-资料医生,补值高手

昨天我们发现,过多的样本反而会对估计做出反效果,因此我们今天要来缩小样本来补值,说到缩小样本,就不得不提到鼎鼎大名的KNN演算法,又称为K-近邻演算法最近邻居法,相关理论很复杂,我们先跳过,总而言之就是是用空缺邻近的数值来推估缺值,以下示范多款比较高端的插值法

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt 


if __name__ == "__main__":
    data = pd.read_csv("./temp.csv")

    # 有些插值法是时间序列专用,所以最好先将索引转成时间
    data["time"] = pd.to_datetime(data["time"])
    data = data.set_index("time")

    # 线性插值法
    data["linear_imputed"] = data["temp"].interpolate(method="linear")

    # 最近邻居插值法
    data["nearest_imputed"] = data["temp"].interpolate(method="nearest")

    # 导数插值法
    data["from_derivatives_imputed"] = data["temp"].interpolate(method="from_derivatives")

    # 以下这些方法会使用到索引,请加上一个顺序参数,其中多项式跟样条一定要加
    # 时间插值法,时间序列专用
    data["time_imputed"] = data["temp"].interpolate(method="time", order=10)

    # 线性插值法
    data["slinear_imputed"] = data["temp"].interpolate(method="slinear", order=10)

    # 二次插值法
    data["quadratic’_imputed"] = data["temp"].interpolate(method="quadratic", order=10)

    # 三次插值法
    data["cubic_imputed"] = data["temp"].interpolate(method="cubic", order=10)

    # 零插值法
    data["zero_imputed"] = data["temp"].interpolate(method="zero", order=10)

    # 样条插值法
    data["spline_imputed"] = data["temp"].interpolate(method="spline", order=2)

    # 多项式插值法
    data["polynomial_imputed"] = data["temp"].interpolate(method="polynomial", order=2)

    data.to_csv("./OK.csv")


这个数值是不是比昨天更有说服力了呢


<<:  [Android Studio菜鸟的学习分享]完赛结语

>>:  DAY28 第一个完整程序练习,一台计算机!(三)

D29 Selenium 自动注册帐户

研究了半天 写了一个自动注册帐户的程序 如下 首先会读取chromedriver 开启後转到注册页面...

RISC-V: R-type 位移指令

今天一样是简单的 SLL、SRL、SRA 指令实作, 再一样为了 Code Stream Logge...

二、教你怎麽看source code,找到核心程序码 ep.19:把tfrecord parse完了,接着做了哪些preprocess? 3

文章说明 文章分段 文章说明 deeplab的简单介绍、於我的意义 tensorflow的程序码特色...

认识强大的Python套件:NumPy

昨天已经学会要如何呼叫套件了,今天就让我们来学习套件里的语法运用吧! 首先先呼叫我们的NumPy套件...

Day 23 - 新的一年离职同事的惊喜专案包(下)

昨日提到的评估框架结果後,今天的内容偏向是技术面开发的重点汇整。 监测平台 Web framewor...