实验目的: 学会使用分类算法对数据集进行分类,并对比不同分类算法的准确性。 数据集描述:要求包含1000以上的样本量,8个样本属性。 实验要求: 1. 使用K近邻算法和决策树算法对样本进行分类。 2. 按4:1的比例划分训练集和测试集。 3. 分别计算两种算法的准确率并对比得到更适用的决策算法。列出详细的代码程序
时间: 2024-02-22 09:56:41 浏览: 18
好的,以下是我为您提供的代码程序:
1. 数据集准备
首先,我们需要导入所需的库并加载数据集:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
data = pd.read_csv('data.csv') # 加载数据集
X = data.iloc[:, :-1] # 获取所有特征列
y = data.iloc[:, -1] # 获取标签列
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
2. K近邻算法
接下来,我们使用K近邻算法对数据集进行分类:
```python
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# 创建K近邻分类器
knn = KNeighborsClassifier()
# 使用训练集训练K近邻分类器
knn.fit(X_train, y_train)
# 使用测试集对K近邻分类器进行测试
y_pred = knn.predict(X_test)
# 计算K近邻分类器的准确率
accuracy = accuracy_score(y_test, y_pred)
print("K近邻算法的准确率为:", accuracy)
```
3. 决策树算法
接下来,我们使用决策树算法对数据集进行分类:
```python
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 创建决策树分类器
dtc = DecisionTreeClassifier()
# 使用训练集训练决策树分类器
dtc.fit(X_train, y_train)
# 使用测试集对决策树分类器进行测试
y_pred = dtc.predict(X_test)
# 计算决策树分类器的准确率
accuracy = accuracy_score(y_test, y_pred)
print("决策树算法的准确率为:", accuracy)
```
4. 结果分析
最后,我们将两种算法的准确率进行比较并得出更适用的决策算法:
```python
if accuracy_knn > accuracy_dtc:
print("K近邻算法更适用于该数据集")
else:
print("决策树算法更适用于该数据集")
```
完整的代码程序如下:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 加载数据集
data = pd.read_csv('data.csv')
# 获取所有特征列和标签列
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建K近邻分类器
knn = KNeighborsClassifier()
# 使用训练集训练K近邻分类器
knn.fit(X_train, y_train)
# 使用测试集对K近邻分类器进行测试
y_pred_knn = knn.predict(X_test)
# 计算K近邻分类器的准确率
accuracy_knn = accuracy_score(y_test, y_pred_knn)
print("K近邻算法的准确率为:", accuracy_knn)
# 创建决策树分类器
dtc = DecisionTreeClassifier()
# 使用训练集训练决策树分类器
dtc.fit(X_train, y_train)
# 使用测试集对决策树分类器进行测试
y_pred_dtc = dtc.predict(X_test)
# 计算决策树分类器的准确率
accuracy_dtc = accuracy_score(y_test, y_pred_dtc)
print("决策树算法的准确率为:", accuracy_dtc)
# 比较两种算法的准确率并得出更适用的算法
if accuracy_knn > accuracy_dtc:
print("K近邻算法更适用于该数据集")
else:
print("决策树算法更适用于该数据集")
```
希望这份代码能帮助到您!
相关推荐
![csv](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)