第4关:相关性检验—皮尔森(Pearson)系数

第1关:缺失值—中位数填充缺失值
# -*- coding: utf-8 -*-

def fill_median(data):

    """填充数据中的缺失值

    参数:

        data - pandas.dataframe格式,原始数据



    返回值:

        processed_data - 填充后的数据

    """

    processed_data = data

    #   请在此添加实现代码     #

    #********** Begin *********#

    processed_data = data.fillna(data.median())

    #********** End ***********#

    return processed_data

第2关:离散化

# -*- coding: utf-8 -*-

import pandas as pd

def discretization(data):

    """对连续型数据离散化

     0-17 -> 0

    18-44 -> 1

    45-59 -> 2

    60-   -> 3

    参数:

        data - pandas.dataframe格式,原始数据中的一列



    返回值:

        processed_data - 离散化后的数据

    """

    processed_data = data

    #   请在此添加实现代码     #

    #********** Begin *********#

    bins = [0,17,44,59,120]  

    labels = ['0','1','2','3']        

    processed_data = pd.cut(data,bins,labels=labels)

    #********** End ***********#

    return processed_data

第3关:规范化—最小最大规范化

# -*- coding: utf-8 -*-

def minmax_normalization(data):

    """对给定的某一列数据进行0—1规范化

    参数:

        data - pandas.dataframe格式,原始数据集中的某一列数据

    返回值:

        normalized_data - 0-1规则化后的数据

    """

    normalized_data = data

    #   请在此添加实现代码     #

    #********** Begin *********#

    normalized_data = (data-data.min())/(data.max()-data.min())

    #********** End ***********#

    return normalized_data

第4关:相关性检验—皮尔森(Pearson)系数

# -*- coding: utf-8 -*-

import numpy as np

def pearson(data_x, data_y):

    """计算某一属性列与类别的相关性

    参数:

        data_x  - pandas.dataframe格式,原始数据集中的某一列数据

        data_y  - pandas.dataframe格式,原始数据集中的类别

    返回值:

        value - pearson系数

    """

    value = 0

    #   请在此添加实现代码     #

    #********** Begin *********#

    XMean = np.mean(data_x)

    YMean = np.mean(data_y)

    #标准差

    XSD = np.std(data_x)

    YSD = np.std(data_y)

    #z分数

    ZX = (data_x-XMean)/XSD

    ZY = (data_y-YMean)/YSD

    #相关系数

    value = np.sum(ZX*ZY)/(len(data_x))

    #********** End ***********#

    return ("%.4f" % value)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值