adult数据集的数据挖掘

adult数据集的数据挖掘(决策树)

  1. 数据简介
项目Value
>50K, <=50K.boolean
agecontinuous
workclassPrivate, Self-emp-not-inc, Self-emp-inc, Federal-gov, Local-gov, State-gov, Without-pay, Never-worked
fnlwgtcontinuous
educationBachelors, Some-college, 11th, HS-grad, Prof-school, Assoc-acdm, Assoc-voc, 9th, 7th-8th, 12th, Masters…
education-numcontinuous
marital-statusMarried-civ-spouse, Divorced, Never-married, Separated, Widowed, Married-spouse-absent, Married-AF-spouse.
occupationTech-support, Craft-repair, Other-service, Sales, Exec-managerial, Prof-specialty, Handlers-cleaners, Machine-op-inspct…
relationshipWife, Own-child, Husband, Not-in-family, Other-relative, Unmarried.
raceWhite, Asian-Pac-Islander, Amer-Indian-Eskimo, Other, Black.
sexFemale, Male
capital-gaincontinuous
capital-losscontinuous
hours-per-weekcontinuous
native-countryUnited-States, Cambodia, England, Germany, India,Japan, Greece, South, China…

2.准备工作

#准备工作
from sklearn.datasets import load_wine
from sklearn import metrics
import matplotlib.pyplot as plt
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn import tree
import pandas as pd
data=pd.read_csv('adult.data',header=None)#提取数据

在这里插入图片描述
3.数据处理

data[1][data[1]==' Private']=0
data[1][data[1]==' Self-emp-not-inc']=1
data[1][data[1]==' Self-emp-inc']=2
data[1][data[1]==' Federal-gov']=3
data[1][data[1]==' Local-gov']=4
data[1][data[1]==' State-gov']=5
data[1][data[1]==' Without-pay']=6
data[1][data[1]==' Never-worked']=7
data[3][data[3]==' Bachelors']=0
data[3][data[3]==' Some-college']=1
data[3][data[3]==' 11th']=2
data[3][data[3]==' HS-grad']=3
data[3][data[3]==' Prof-school']=4
data[3][data[3]==' Assoc-acdm']=5
data[3][data[3]==' Assoc-voc']=6
data[3][data[3]==' 9th']=7
data[3][data[3]==' 7th-8th']=8
data[3][data[3]==' 12th']=9
data[3][data[3]==' Masters']=10
data[3][data[3]==' 1st-4th']=11
data[3][data[3]==' 10th']=12
data[3][data[3]==' Doctorate']=13
data[3][data[3]==' 5th-6th']=14
data[3][data[3]==' Preschool']=15
data[5][data[5]==' Married-civ-spouse']=0
data[5][data[5]==' Divorced']=1
data[5][data[5]==' Never-married']=2
data[5][data[5]==' Separated']=3
data[5][data[5]==' Widowed']=4
data[5][data[5]==' Married-spouse-absent']=5
data[5][data[5]==' Married-AF-spouse']=6
data[6][data[6]==' Tech-support']=0
data[6][data[6]==' Craft-repair']=1
data[6][data[6]==' Other-service']=2
data[6][data[6]==' Sales']=3
data[6][data[6]==' Exec-managerial']=4
data[6][data[6]==' Prof-specialty']=5
data[6][data[6]==' Handlers-cleaners']=6
data[6][data[6]==' Machine-op-inspct']=7
data[6][data[6]==' Adm-clerical']=8
data[6][data[6]==' Farming-fishing']=9
data[6][data[6]==' Transport-moving']=10
data[6][data[6]==' Priv-house-serv']=11
data[6][data[6]==' Protective-serv']=12
data[6][data[6]==' Armed-Forces']=13
data[7][data[7]==' Wife']=0
data[7][data[7]==' Own-child']=1
data[7][data[7]==' Husband']=2
data[7][data[7]==' Not-in-family']=3
data[7][data[7]==' Other-relative']=4
data[7][data[7]==' Unmarried']=5
data[8][data[8]==' White']=0
data[8][data[8]==' Asian-Pac-Islander']=1
data[8][data[8]==' Amer-Indian-Eskimo']=2
data[8][data[8]==' Other']=3
data[8][data[8]==' Black']=4
data[9][data[9]==' Male']=0
data[9][data[9]==' Female']=1
data[14][data[14]==' >50K']=0
data[14][data[14]==' <=50K']=1

4.建模(决策树)

X=data.iloc[:,[3,5,8,9]]#提取特征值
X=X.astype('int')#转换为整数型
Y=data.iloc[:,14]#提取标签值
Y=Y.astype('int')#转换为整数型
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2)#分割训练集和测试集
dt_clf = tree.DecisionTreeClassifier()#生成实例
dt_clf = dt_clf.fit(x_train, y_train)
tree_y_pred = dt_clf.predict(x_test)#生成预测值
metrics.accuracy_score(y_test,tree_y_pred)#真实值与预测值的一致性

5.决策树展示

import graphviz
tree.plot_tree(dt_clf) 
feature_name=['education','marital-status','race','sex']
dot_data = tree.export_graphviz(dt_clf,filled=True,rounded=True,feature_names=feature_name,class_names=['>50k','<=50k'])
graph = graphviz.Source(dot_data)
graph#直接展示(法一)
#输出为pdf文件
dot_data=dot_data.replace('helvetica','"Microsoft Yahei"') # 修改字体,支持中文
graph = graphviz.Source(dot_data)
graph.render(r'adult')#将可视化结果输出至指定位置

在这里插入图片描述

6.结论
“>50k人群”:婚姻状况不是已婚,教育程度为学士
“<50k人群”:婚姻状况是已婚,教育程度为教授以上级别

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: k-匿名算法是一种隐私保护技术,在数据发布中常用于保护个人敏感信息。Python是一种广泛使用的编程语言,适合实现k-匿名算法。"adult"数据集是一个经典的机器学习数据集,包含了关于个人特征的数据,适合用于实践k-匿名算法。 具体来说,k-匿名算法旨在通过将某些个体的属性值进行泛化或者抑制,使得每个群体中的个体属性变得相似,达到隐藏个体敏感信息的目的。在Python中,可以使用pandas和numpy等库来处理数据集。首先,需要导入数据集,然后使用适当的方法进行数据预处理和特征选择。之后,可以对数据进行分组,并根据k值要求对每个组的属性值进行泛化处理。 在adult数据集中,我们可以选择一些特征作为匿名化的依据,例如年龄、性别、教育程度等。对于每个特征的值,可以使用相应的泛化方法,例如将年龄划分为不同的年龄段,将教育程度划分为不同的高中、大学等级别。然后,可以根据k值,将群体划分为不同的等价类,使得在每个等价类中的个体具有相似的属性,从而增强数据的隐私性。 最后,为了验证k-匿名算法的效果,可以进行额外的实验和评估步骤。比如,可以使用算法来查询数据集中的某个特定个体,看是否能够识别出其真实身份。如果能够成功识别,则说明k-匿名算法的效果较差,需要进一步优化;反之,则说明k-匿名算法在保护个体隐私方面取得了一定的效果。 总之,通过使用Python实现k-匿名算法,我们可以在adult数据集上进行隐私保护实践,从而保护个体的敏感信息。这一技术的应用有助于在数据发布中平衡数据的可用性和隐私性。 ### 回答2: k-匿名算法是一种数据匿名化方法,旨在保护敏感数据的隐私。Python中有许多用于实现k-匿名算法的库,我们可以使用这些库来处理adult数据集。 adult数据集是一个经常用于机器学习和数据分析的开源数据集,其中包含一些关于个体收入水平与其他特征的信息。为了保护个人隐私,我们可以使用k-匿名算法对该数据集进行匿名化处理。 首先,我们需要使用Python的pandas库来读取adult数据集。然后,我们可以通过对数据进行预处理和特征选择来减少信息泄露的风险。这包括删除或脱敏敏感特征,并将其他特征进行分组,以便保护隐私。 接下来,我们可以使用任何可用的k-匿名算法库(如kanonymizer)将数据集进行匿名化处理。k-匿名算法会将数据集中的个体信息转化为具有k个不可区分的个体。这是通过通用化、泛化或削减特征值来实现的。 最后,我们可以将经过处理的数据保存为新的匿名化数据集,以便后续的分析和建模。 总之,使用Python中的k-匿名算法库可以很容易地对adult数据集进行匿名化处理。这样可以确保敏感数据的隐私,并降低数据泄露的风险。尽管k-匿名算法是一种有效的方法,但仍需注意保持数据的可用性和分析结果的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

freetozn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值