数据挖掘笔记(3)-数据预处理

数据预处理的主要内容包括数据清洗、数据集成、数据变换和数据规约,它的工作量在数据挖掘过程中占60%。

4.1数据清洗

4.1.1缺失值处理

  • 删除记录

  • 不处理

  • 数据插补

    • 使用均值/中位数/众数插补
    • 使用固定值插补
      比如男生身高这个属性有空值,可以用全国的男生平均身高来插补,这是一个固定值。
    • 最近临插补
      用与有空值的样本最接近的样本的属性值来插补。比如可以和K_means算法一样求距离,求出距离含有空值的样本最近的那个样本,用其属性值来插补空值。
      注:如果含有空值无法计算距离,可以先插补这个属性的均值
    • 回归方法
      将含有空值的属性记做y,将没有空值的其他属性记做x(x1,x2…xn),然后建立拟合模型来预测y的值。
    • 插值法
      • 拉格朗日插值法
        在这里插入图片描述
        在这里插入图片描述
        利用已知的n个点对建立拉格朗日插值多项式,将缺失值对应的x带入插值函数得到近似值L(x)。

      • 牛顿插值法
        当点对的数量变化时,拉格朗日插值多项式的每一项都要变化,在实际计算中很不方便,所以提出了牛顿插值法。
        (x1,y1),(x2,y2),(x3,y3)…(xn,yn)n个点对的一阶到n阶的差商公式如下:
        在这里插入图片描述
        其中y1=f(x1),y2=f(x2)…yn=f(xn)
        在这里插入图片描述
        将缺失值对应的点x带入牛顿插值多项式得到缺失值的近似值f(x)。可见点对数量变化时牛顿插值多项式只用在后部分增加或删除就可以了。
        代码如下:

# -*- coding:utf-8 -*-
# 牛顿插值多项式


def get_n_diff_quo(xi, fi):
    """
    计算n阶差商(difference quotient)
    """
    if len(xi) > 2:
        return (get_n_diff_quo(xi[:len(xi)-1], fi[:len(fi)-1])-get_n_diff_quo(xi[1:len(xi)], fi[1:len(fi)]))/(xi[0]-xi[-1])
    return (fi[0]-fi[1])/(xi[0]-xi[1])


def get_w(xi):
    """
    计算差商前面的系数
    """
    def w(x):
        result = 1.0
        for i, j in enumerate(xi, start=1):
            # 跳过xi的最后一项
            if i == len(xi):
                break
            # print(j)
            result *= (x - j)
        return result
    return w


def get_newton_interpolate(xi, fi):
    """
    :param xi: xi存放点对的x坐标
    :param fi: fi存放点对的y坐标
    :return: 牛顿插值函数
    """
    def newton_interpolate(x):
        result = fi[0]
        for i in range(2, len(xi)+1):
            result += (get_n_diff_quo(xi[:i], fi[:i]) * get_w(xi[:i])(x))
        return result
    return newton_interpolate

if __name__ == '__main__':
    train_x = [i for i in range(-10, 11)]
    train_y = [i**2 for i in train_x]
    newton_inter = get_newton_i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值