导入数据随机森林模糊算法分三类后画loss曲线python
时间: 2023-10-24 13:16:53 浏览: 76
如何通过python画loss曲线的方法
5星 · 资源好评率100%
首先,导入数据并进行预处理。这里假设数据集已经被分成三类,每个类别包含自己的特征和标签。
```python
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
import matplotlib.pyplot as plt
# 加载数据集
data = pd.read_csv("data.csv")
# 预处理数据
label_encoder = LabelEncoder()
data['label'] = label_encoder.fit_transform(data['label'])
X = data.drop('label', axis=1)
y = data['label']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
接下来,训练随机森林模型。
```python
# 训练随机森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
```
然后,计算模型在训练集和测试集上的损失和准确率。
```python
# 计算训练集和测试集上的损失和准确率
train_loss = []
train_acc = []
test_loss = []
test_acc = []
for n in range(1, 101):
rf.n_estimators = n
rf.fit(X_train, y_train)
train_loss.append(rf.score(X_train, y_train))
train_acc.append(rf.score(X_train, y_train))
test_loss.append(rf.score(X_test, y_test))
test_acc.append(rf.score(X_test, y_test))
```
最后,画出训练集和测试集上的损失曲线。
```python
# 画出训练集和测试集上的损失曲线
plt.plot(range(1, 101), train_loss, label='train')
plt.plot(range(1, 101), test_loss, label='test')
plt.legend()
plt.xlabel('n_estimators')
plt.ylabel('loss')
plt.show()
```
这样就可以得到训练集和测试集上的损失曲线了。如果需要画出准确率曲线,只需要将 `loss` 替换为 `acc` 即可。
阅读全文