栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

AODE模型处理大数据

AODE模型处理大数据

  def func(self,mean,var,xi):
        '''
        概率密度函数
        :param mean:均值
        :param var:方差
        :param xi:预测的样本的该属性值
        :return:
        '''
        return exp(-((float(xi)-mean)**2)/(2*var**2))/(sqrt(2*pi)*var)
    def AODE_predict(self,yangben_data):
        '''
        预测下次是否违约
        :param yangben_data: 要预测的样本数据[负债比率,月收入,未偿还贷款数,家庭人数]
        :return:
        '''
        str_arr=['DebtRatio','MonthlyIncome','num_late_card','families']
        mean_var_arr0=[]
        mean_var_arr1 = []
        for i in range(len(str_arr)):
            arr_temp1=[]
            arr_temp0 = []
            df_ = df.select(df[str_arr[i]],df['y'])
            df_1=df_.filter(df['y'] == 1)
            df_0=df_.filter(df['y'] == 0)
            df_result1 = df_1.select(mean(str_arr[i]).alias('mean'),
                                       stddev(str_arr[i]).alias('stddev')).collect()
            debt_mean1 = df_result1[0]["mean"]
            debt_var1 = df_result1[0]["stddev"]
            arr_temp1.append(debt_mean1)
            arr_temp1.append(debt_var1)
            mean_var_arr1.append(arr_temp1)

            df_result0 = df_0.select(mean(str_arr[i]).alias('mean'),
                                     stddev(str_arr[i]).alias('stddev')).collect()
            debt_mean0 = df_result0[0]["mean"]
            debt_var0 = df_result0[0]["stddev"]
            arr_temp0.append(debt_mean0)
            arr_temp0.append(debt_var0)
            mean_var_arr0.append(arr_temp0)

            print(str_arr[i])
            print("1",debt_mean1,debt_var1)  # 求方差和均值
            print("0",debt_mean0,debt_var0)

        pre_1 = 1
        pre_0 = 1
        for i in range(len(yangben_data)):
            p1 = self.func(mean_var_arr1[i][0], mean_var_arr1[i][1], yangben_data[i])
            p0 = self.func(mean_var_arr0[i][0], mean_var_arr0[i][1], yangben_data[i])
            pre_0 = pre_0 * p0
            pre_1 = pre_1 * p1
        if (pre_0 > pre_1):
            print("this is 0")
            return "下次不逾期"
        else:
            print("this is 1")
            return "下次逾期"

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/699746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号