【问题标题】:Response coding for categorical data分类数据的响应编码
【发布时间】:2021-02-09 16:01:47
【问题描述】:

响应编码是一种矢量化分类数据的技术。假设我们有一个名为“grade_category”的分类特征,它具有以下唯一标签 - ['grades_3_5', 'grades_prek_2', 'grades_9_12', 'grades_6_8']。 假设我们正在处理目标类标签为 0 和 1 的分类问题

在响应编码中,您必须为我们的特征中的每个标签输出概率值,即标签与特定类标签一起出现 例如,grades_prek_2 = [它发生在 class_0 的概率,它发生在 1 类的概率]

【问题讨论】:

    标签: python-3.x vectorization categorical-data


    【解决方案1】:
    def response_coding(xtrain, ytrain, feature):
                """ this method will encode the categorical features 
                using response_coding technique. 
                args:
                    xtrain, ytrain, feature (all are ndarray)
                returns:
                    dictionary (dict)
                """
        
        dictionary = dict()
        x = PrettyTable()
        x = PrettyTable([feature, 'class 1', 'class 0'])
    
        unique_cat_labels = xtrain[feature].unique()
    
        for i in tqdm(range(len(unique_cat_labels))):
            total_count = xtrain.loc[:,feature][(xtrain[feature] == unique_cat_labels[i])].count()
            p_0 = xtrain.loc[:, feature][((xtrain[feature] == unique_cat_labels[i]) & (ytrain==0))].count()
            p_1 = xtrain.loc[:, feature][((xtrain[feature] == unique_cat_labels[i]) & (ytrain==1))].count()
    
            dictionary[unique_cat_labels[i]] = [p_1/total_count, p_0/total_count]
    
            row = []
            row.append(unique_cat_labels[i])
            row.append(p_1/total_count)
            row.append(p_0/total_count)
            x.add_row(row)
        print()
        print(x)[![enter image description here][1]][1]
        return dictionary
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-21
      • 2017-06-26
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      • 2011-07-13
      • 2016-07-13
      相关资源
      最近更新 更多