首先看一下部分原始数据,第一类代表图像编号,每张图像提取了10个特征,最后一列是图像的真实类别,本例是二分类问题,多分类算法同二分类。
另外,我用的是anaconda实现。

实际运行过程中可以提前将number列也就是图像编号列给删去,这里为了方便大家理解,就不删除啦~~
1.随机划分训练集与测试集
重要用到的就是train_test_split()函数对训练集和测试集进行随机划分。代码如下,注释比较清楚地写在了代码了,这里不再阐述。
import pandas as pd
import numpy as np
data=pd.read_csv('data.csv')
#y是图像的类别
y=np.array(data['actual'])
#x是图像的特征
x=data.drop('actual',axis=1)
x=np.array(x)
#该运行结果表明数据集中共收集了100张图像,每张图像收集了10个特征。
print(x.shape)
该部分代码运行结果:

from sklearn.model_selection import train_test_split
#随机划分训练集和测试集。
#test_size表明测试集占整体样本的比例;random_state是随机数种子,当为0时,每次生成的随机数即随机顺序是不相同的,当为固定的数值时,可以在多次运行时获得相同的随机数。
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=40)
from sklearn.ensemble import RandomForestClassifier
#构建随机森林,其中n_estimators表示决策树的棵树。
rf=RandomForestClassifier(n_estimators=100,random_state=40)
#对训练集的特征及正确分类结果进行训练
rf.fit(x_train,y_train)
#根据测试集的特征对分类结果进行预测
predictions=rf.predict(x_test)
#输出测试集的预测结果以及原本的正确分类结果。
for prediction,test_label in zip(predictions,y_test):
[print(prediction,test_label)]
该部分代码运行结果如下:

#获得预测准确率
score=rf.score(x_test,y_test)
print('accuracy is\n ',score)
该部分代码运行结果:

为演示随机森林算法,本例中的原始数据是我前期随意找的,因此准确率有点低啊~~
根据需求人为设定训练集和测试集请见下一篇博客~~
本文介绍了如何使用Python实现随机森林中训练集与测试集的随机划分,通过train_test_split()函数进行操作,并展示了部分原始数据和运行结果。尽管示例数据导致的准确率较低,但文章旨在展示划分过程。
-Python实现&spm=1001.2101.3001.5002&articleId=106573108&d=1&t=3&u=8ce95adf26484cffae3cb1ca270871b7)
3615

被折叠的 条评论
为什么被折叠?



