直接上代码
'''
Created on 2019年3月29日
@author: vincent
'''
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
import numpy as np
iris = load_iris() #载入鸢尾花数据集
df = pd.DataFrame(iris.data,columns=iris.feature_names) #设置行列,每行为样本,每列为数据集属性
df['is_train'] = np.random.uniform(0,1,len(df)) <= .75 #每个样本生成一个随机数,小于0.75作为训练集,否则作为测试样本
df['species'] = iris.target_names[iris.target] #添加子属列
print(df.head(150))
train,test = df[df['is_train']==True],df[df['is_train']==False]
features = df.columns[:4]
clf = RandomForestClassifier(n_estimators=10,n_jobs=2) #构建随机森林 n_jobs为运行的CPU数量
x,y = pd.factorize(train['species']) #解析花属列,取得训练集的花属结果
clf.fit(train[features],x) #添加训练集,train[features]为属性,x为结果
preds = iris.target_names[clf.predict(test[features])]