## 数据挖掘实验2python编写贝叶斯分类器

| |
[ 所属分类 开发（python） | 发布者 店小二03 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏
1. Introduction

2. 分类器编写 2.1数据说明

2.2 框架规划

class DataSet:
def __init__(self):
# 存储读入的原始数据
self.data = []
# 支出的中位数
self.loss_mid = 0
# 收入的中位数
self.gain_mid = 0
# 工作时长的中位数
self.hours_mid = 0
# 年龄的中位数
self.age_mid = 0
# 统计的数据，主要部分
self.classfied_dataset = None
# 总数据条目
self.len_data = 0

2.3 输入数据预处理 a = ["age", "type_employer", "fnlwgt", "education", "education_num", "marital", "occupation", "relationship", "race",
"sex", "capital_gain", "capital_loss", "hr_per_week", "country", "income"]
classfiled_data = {}
loss_median = loss
gain_median = gain
for node in a:
classfiled_data[node] = {}
for line in data:
if len(line) < 10:continuefor node in a: if line[a.index(node)] in classfiled_data[node]: classfiled_data[node][line[a.index(node)]] += 1 else: classfiled_data[node][line[a.index(node)]] = 1

# 打印classfiled_data的输出，这是已经简化过的输出
{education:
{'Prof-school': 153, 'dropout': 4009, 'Doctorate': 107, 'HS-grad': 8826, 'Bachelors': 3134, 'Assoc': 1823, 'Some-college': 5904, 'Masters': 764},
marital:
{'Widowed': 908, 'Never-married': 10192, 'not-married': 5323, 'Married': 8297},
country:
{'other': 133, 'United-States': 21999, 'British-Commonwealth': 230, 'SE-Asia': 242, 'Euro_1': 159, 'Euro_2': 122, '?': 437, 'South': 64, 'China': 100, 'Latin-America': 1027, 'South-America': 207},
income:
{'<=50K': 24720},
capital_gain:
{'low': 0, 'none': 23685, 'high': 1035},
relationship:
{'Not-in-family': 7449, 'Own-child': 5001, 'Other-relative': 944, 'Husband': 7275, 'Wife': 823, 'Unmarried': 3228},}

2.4 字段简化

if new_name not in classfiled_data[category]:
classfiled_data[category][new_name] = 0
for key in list(classfiled_data[category]):if key in a_list and key != new_name: classfiled_data[category][new_name] += classfiled_data[category][key] del classfiled_data[category][key]
tiny(['Never-worked', 'Without-pay'], 'type_employer', 'not-working')
tiny(['Local-gov', 'State-gov'], 'type_employer', 'other-govt')
tiny(['Self-emp-inc', 'Self-emp-not-inc'], 'type_employer', 'self-employed')

capital_gain 利用中位数划分成三部分：(-INF, 0] (0, mid] (mid, INF] capital_loss 同上 hr_per_week 工作时间按照10小时间隔划分了。最大值99，映射到100s上 age 按照5为间隔划分了20组， 3. 测试数据

tags: data,classfiled,node,self,字段,capital,category,数据,type,key,education,employer,mid,50k

1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责；
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性，不作出任何保证或承若；
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。