实验课程

THIS NAME

实验课程

当前位置: 首页 >> 实验课程 >> 正文

数据挖掘与数据仓储-分类分析综合实验

发布日期:2024-03-05    作者:王清洋     来源:     点击:

分类分析综合实验

一、实验目的

1熟悉典型的分类算法应用

2、熟悉分类算法的评估与模型选择

二、实验设备与器件

计算机、Python语言开发环境

三、实验内容

1.利用决策树算法对Iris数据集构建决策树。

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.datasets import load_iris

from sklearn import tree

from sklearn.model_selection import train_test_split

iris = load_iris()

X_train,X_test,y_train,y_test=train_test_split(iris.data, iris.target,test_size=0.20,random_state=30,shuffle=True)

clf = tree.DecisionTreeClassifier(criterion='entropy')

# criterion缺省为'gini'

clf = clf.fit(X_train,y_train)

plt.figure(dpi=150)

tree.plot_tree(clf, feature_names=iris.feature_names, class_names=iris.target_names)

# feature_names=iris.feature_names设置决策树中显示的特征名称

# 预测数据[6,5,5,2]的类别

print('数据[6,5,5,2]的类别:',clf.predict([[6,5,5,2]]))

print('测试集的标签:\n',y_test)

y_pre=clf.predict(X_test)

print('预测的测试集标签:\n',y_pre)

print('模型准确率为:',clf.score(X_test,y_test))

 

 

2.Iris数据集进行朴素贝叶斯分类。

from sklearn.datasets import load_iris

from sklearn.naive_bayes import GaussianNB

iris = load_iris()

clf = GaussianNB()#设置高斯贝叶斯分类器

clf.fit(iris.data,iris.target)#训练分类器

y_pred = clf.predict(iris.data)#预测

print("Number of mislabeled points out of %d points:%d" %(iris.data.shape[0],(iris.target!= y_pred).sum()))

 

3.使用如下表所示的数据,利用决策树算法预测是否感冒。

 

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.tree import DecisionTreeClassifier

from sklearn.metrics import accuracy_score

 

# 创建数据框

data = {

   '头痛': [0, 1, 1, 0, 1],

   '咳嗽': [1, 1, 0, 1, 0],

   '喉咙痛': [1, 0, 1, 1, 1],

   '发烧': [0, 1, 1, 0, 1],

   '是否感冒': [0, 1, 1, 0, 1]

}

 

df = pd.DataFrame(data)

 

# 分离特征和目标变量

X = df.drop('是否感冒', axis=1)

y = df['是否感冒']

 

# 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

 

# 创建决策树分类器

clf = DecisionTreeClassifier()

 

# 训练模型

clf.fit(X_train, y_train)

 

# 预测

y_pred = clf.predict(X_test)

 

# 计算准确率

accuracy = accuracy_score(y_test, y_pred)

print("Accuracy:", accuracy)

 

上一条:数据挖掘与数据仓储-数据的聚类分析综合实验 下一条:Storm流式计算-Flink初级编程实践

关闭