python写一个影响一个人买电脑的因素有很多,首先看这个人的年龄,如果是青年,然后 看这个人是否为学生,如果是学生,就买电脑,如果不是学生就不买电脑。然后 如果这个人是中年,那么这个人一定买电脑。如果这个人是中老年,看这个人的 收入和信用;如果收入高就买电脑,否则不买;如果信用很好就买电脑,否则不 买。如图 1 所示为是否购买计算机的群体的一项数据调查(数据在附件“购买电 脑.csv”中)。 数据集属性如下: ID:编号 Age:年龄,young 是青年人,middle_aged 是中年人,senior 是老年人 income:收入,high 高,medium 中等,low 低 Student:学生 credit_rating:信用级别, fair 正常, excellent 优秀 buys_computer 是目标属性,是否购买电脑 请使用决策树方法对数据分析,完成如下要求: A 对数据进行标签化预处理(40 分) B 实现决策树属性图(50 分) C 使用构建的模型对数据[1 0 1 0]进行预测(10 分)
时间: 2024-02-09 11:11:47 浏览: 83
好的,以下是Python实现的代码:
A. 标签化预处理
```python
import pandas as pd
# 读取数据集
data = pd.read_csv("购买电脑.csv")
# 年龄属性标签化处理
data.loc[data["Age"] == "young", "Age"] = 0
data.loc[data["Age"] == "middle_aged", "Age"] = 1
data.loc[data["Age"] == "senior", "Age"] = 2
# 收入属性标签化处理
data.loc[data["income"] == "low", "income"] = 0
data.loc[data["income"] == "medium", "income"] = 1
data.loc[data["income"] == "high", "income"] = 2
# 学生属性标签化处理
data.loc[data["Student"] == "no", "Student"] = 0
data.loc[data["Student"] == "yes", "Student"] = 1
# 信用级别属性标签化处理
data.loc[data["credit_rating"] == "fair", "credit_rating"] = 0
data.loc[data["credit_rating"] == "excellent", "credit_rating"] = 1
# 购买电脑属性标签化处理
data.loc[data["buys_computer"] == "no", "buys_computer"] = 0
data.loc[data["buys_computer"] == "yes", "buys_computer"] = 1
# 保存标签化处理后的数据集
data.to_csv("标签化处理后的购买电脑.csv", index=False)
```
B. 决策树属性图
```python
import pandas as pd
from sklearn.tree import DecisionTreeClassifier, export_graphviz
import graphviz
# 读取标签化处理后的数据集
data = pd.read_csv("标签化处理后的购买电脑.csv")
# 将数据集分为训练集和测试集
x_train = data.iloc[:, :-1]
y_train = data.iloc[:, -1]
# 构建决策树模型
clf = DecisionTreeClassifier(criterion="entropy")
clf.fit(x_train, y_train)
# 使用graphviz库将决策树属性图绘制出来
dot_data = export_graphviz(clf, out_file=None, feature_names=list(x_train.columns.values), class_names=["no", "yes"], filled=True, rounded=True, special_characters=True)
graph = graphviz.Source(dot_data)
graph.view()
```
C. 对数据[1 0 1 0]进行预测
```python
import pandas as pd
# 读取标签化处理后的数据集
data = pd.read_csv("标签化处理后的购买电脑.csv")
# 构造测试数据
test_data = pd.DataFrame({"Age": [1], "income": [0], "Student": [1], "credit_rating": [0]})
# 进行预测
result = clf.predict(test_data)
# 输出预测结果
if result == 1:
print("购买电脑")
else:
print("不购买电脑")
```
请注意,以上代码中的`clf`是通过决策树构建出来的模型。由于我无法使用您提供的数据集,因此无法保证代码运行的正确性。需要您根据实际情况进行调整。
阅读全文