from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris
iris=load_iris()
X=iris.data[:,:2] #花萼长度和宽度
y=iris.target
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.33,random_state=42)
rnd_clf=RandomForestClassifier(n_estimators=5,max_leaf_nodes=16,n_jobs=1,oob_score=True)
rnd_clf.fit(X_train,y_train)
y_pred_rf=rnd_clf.predict(X_test)
# 打印测试集的准确lv
print(accuracy_score(y_test,y_pred_rf))
# 特征重要程度
iris=load_iris()
rnd_clf=RandomForestClassifier(n_estimators=500,n_jobs=1)
rnd_clf.fit(iris['data'],iris['target'])
for name,score in zip(iris['feature_names'],rnd_clf.feature_importances_):
print(name,score)
0.72
sepal length (cm) 0.09823199526831375
sepal width (cm) 0.022488398392661132
petal length (cm) 0.4330003884588872
petal width (cm) 0.44627921788013797