In [11]:
#importing scikit-learn datasets package
#and the RandonForestClassifier package
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
iris = datasets.load_iris()
m = RandomForestClassifier()
In [12]:
#build a forest of trees from the training set (X, y)
m.fit(iris.data,iris.target)
Out[12]:
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
max_depth=None, max_features='auto', max_leaf_nodes=None,
min_impurity_split=1e-07, min_samples_leaf=1,
min_samples_split=2, min_weight_fraction_leaf=0.0,
n_estimators=10, n_jobs=1, oob_score=False, random_state=None,
verbose=0, warm_start=False)
In [13]:
#apply trees in the forest to X, return leaf indices
m.apply(iris.data)
Out[13]:
array([[ 2, 1, 1, ..., 1, 1, 1],
[ 2, 1, 1, ..., 1, 1, 1],
[ 2, 1, 1, ..., 1, 1, 1],
...,
[18, 14, 18, ..., 14, 22, 5],
[18, 14, 18, ..., 14, 22, 5],
[18, 12, 17, ..., 12, 22, 5]], dtype=int64)
In [10]:
#return the decision path in the forest
m.decision_path(iris.data)
Out[10]:
(<150x168 sparse matrix of type '<class 'numpy.int64'>'
with 5663 stored elements in Compressed Sparse Row format>,
array([ 0, 19, 44, 65, 82, 93, 102, 119, 134, 153, 168], dtype=int32))
In [14]:
#fit to data and transform the result
m.fit_transform(iris.data,iris.target)
C:\Users\priyu\Anaconda3\lib\site-packages\sklearn\utils\deprecation.py:70: DeprecationWarning: Function transform is deprecated; Support to use estimators as feature selectors will be removed in version 0.19. Use SelectFromModel instead.
warnings.warn(msg, category=DeprecationWarning)
Out[14]:
array([[ 1.4, 0.2],
[ 1.4, 0.2],
[ 1.3, 0.2],
[ 1.5, 0.2],
[ 1.4, 0.2],
[ 1.7, 0.4],
[ 1.4, 0.3],
[ 1.5, 0.2],
[ 1.4, 0.2],
[ 1.5, 0.1],
[ 1.5, 0.2],
[ 1.6, 0.2],
[ 1.4, 0.1],
[ 1.1, 0.1],
[ 1.2, 0.2],
[ 1.5, 0.4],
[ 1.3, 0.4],
[ 1.4, 0.3],
[ 1.7, 0.3],
[ 1.5, 0.3],
[ 1.7, 0.2],
[ 1.5, 0.4],
[ 1. , 0.2],
[ 1.7, 0.5],
[ 1.9, 0.2],
[ 1.6, 0.2],
[ 1.6, 0.4],
[ 1.5, 0.2],
[ 1.4, 0.2],
[ 1.6, 0.2],
[ 1.6, 0.2],
[ 1.5, 0.4],
[ 1.5, 0.1],
[ 1.4, 0.2],
[ 1.5, 0.1],
[ 1.2, 0.2],
[ 1.3, 0.2],
[ 1.5, 0.1],
[ 1.3, 0.2],
[ 1.5, 0.2],
[ 1.3, 0.3],
[ 1.3, 0.3],
[ 1.3, 0.2],
[ 1.6, 0.6],
[ 1.9, 0.4],
[ 1.4, 0.3],
[ 1.6, 0.2],
[ 1.4, 0.2],
[ 1.5, 0.2],
[ 1.4, 0.2],
[ 4.7, 1.4],
[ 4.5, 1.5],
[ 4.9, 1.5],
[ 4. , 1.3],
[ 4.6, 1.5],
[ 4.5, 1.3],
[ 4.7, 1.6],
[ 3.3, 1. ],
[ 4.6, 1.3],
[ 3.9, 1.4],
[ 3.5, 1. ],
[ 4.2, 1.5],
[ 4. , 1. ],
[ 4.7, 1.4],
[ 3.6, 1.3],
[ 4.4, 1.4],
[ 4.5, 1.5],
[ 4.1, 1. ],
[ 4.5, 1.5],
[ 3.9, 1.1],
[ 4.8, 1.8],
[ 4. , 1.3],
[ 4.9, 1.5],
[ 4.7, 1.2],
[ 4.3, 1.3],
[ 4.4, 1.4],
[ 4.8, 1.4],
[ 5. , 1.7],
[ 4.5, 1.5],
[ 3.5, 1. ],
[ 3.8, 1.1],
[ 3.7, 1. ],
[ 3.9, 1.2],
[ 5.1, 1.6],
[ 4.5, 1.5],
[ 4.5, 1.6],
[ 4.7, 1.5],
[ 4.4, 1.3],
[ 4.1, 1.3],
[ 4. , 1.3],
[ 4.4, 1.2],
[ 4.6, 1.4],
[ 4. , 1.2],
[ 3.3, 1. ],
[ 4.2, 1.3],
[ 4.2, 1.2],
[ 4.2, 1.3],
[ 4.3, 1.3],
[ 3. , 1.1],
[ 4.1, 1.3],
[ 6. , 2.5],
[ 5.1, 1.9],
[ 5.9, 2.1],
[ 5.6, 1.8],
[ 5.8, 2.2],
[ 6.6, 2.1],
[ 4.5, 1.7],
[ 6.3, 1.8],
[ 5.8, 1.8],
[ 6.1, 2.5],
[ 5.1, 2. ],
[ 5.3, 1.9],
[ 5.5, 2.1],
[ 5. , 2. ],
[ 5.1, 2.4],
[ 5.3, 2.3],
[ 5.5, 1.8],
[ 6.7, 2.2],
[ 6.9, 2.3],
[ 5. , 1.5],
[ 5.7, 2.3],
[ 4.9, 2. ],
[ 6.7, 2. ],
[ 4.9, 1.8],
[ 5.7, 2.1],
[ 6. , 1.8],
[ 4.8, 1.8],
[ 4.9, 1.8],
[ 5.6, 2.1],
[ 5.8, 1.6],
[ 6.1, 1.9],
[ 6.4, 2. ],
[ 5.6, 2.2],
[ 5.1, 1.5],
[ 5.6, 1.4],
[ 6.1, 2.3],
[ 5.6, 2.4],
[ 5.5, 1.8],
[ 4.8, 1.8],
[ 5.4, 2.1],
[ 5.6, 2.4],
[ 5.1, 2.3],
[ 5.1, 1.9],
[ 5.9, 2.3],
[ 5.7, 2.5],
[ 5.2, 2.3],
[ 5. , 1.9],
[ 5.2, 2. ],
[ 5.4, 2.3],
[ 5.1, 1.8]])
In [7]:
#get parameters for the estimator
m.get_params()
Out[7]:
{'bootstrap': True,
'class_weight': None,
'criterion': 'gini',
'max_depth': None,
'max_features': 'auto',
'max_leaf_nodes': None,
'min_impurity_split': 1e-07,
'min_samples_leaf': 1,
'min_samples_split': 2,
'min_weight_fraction_leaf': 0.0,
'n_estimators': 10,
'n_jobs': 1,
'oob_score': False,
'random_state': None,
'verbose': 0,
'warm_start': False}
In [8]:
#predict class for X
m.predict(iris.data)
Out[8]:
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
In [9]:
#predict class log probabilities for X
m.predict_log_proba(iris.data)
/home/harish/anaconda3/lib/python3.5/site-packages/sklearn/ensemble/forest.py:628: RuntimeWarning: divide by zero encountered in log
return np.log(proba)
Out[9]:
array([[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ 0. , -inf, -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, -0.10536052, -2.30258509],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, -0.10536052, -2.30258509],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, -0.10536052, -2.30258509],
[ -inf, 0. , -inf],
[ -inf, -0.35667494, -1.2039728 ],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, -0.51082562, -0.91629073],
[ -inf, 0. , -inf],
[ -inf, -0.35667494, -1.2039728 ],
[ -inf, 0. , -inf],
[ -inf, -0.22314355, -1.60943791],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, -0.10536052, -2.30258509],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, -0.51082562, -0.91629073],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, 0. , -inf],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -1.60943791, -0.22314355],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -1.2039728 , -0.35667494],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -2.30258509, -0.10536052],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -2.30258509, -0.10536052],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -1.2039728 , -0.35667494],
[ -inf, -1.60943791, -0.22314355],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -2.30258509, -0.10536052],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ],
[ -inf, -inf, 0. ]])
In [10]:
#predict class probabilities for X
m.predict_proba(iris.data)
Out[10]:
array([[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 0.9, 0.1],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 0.9, 0.1],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 0.9, 0.1],
[ 0. , 1. , 0. ],
[ 0. , 0.7, 0.3],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 0.6, 0.4],
[ 0. , 1. , 0. ],
[ 0. , 0.7, 0.3],
[ 0. , 1. , 0. ],
[ 0. , 0.8, 0.2],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 0.9, 0.1],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 0.6, 0.4],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0.2, 0.8],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0.3, 0.7],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0.1, 0.9],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0.1, 0.9],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0.3, 0.7],
[ 0. , 0.2, 0.8],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0.1, 0.9],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ],
[ 0. , 0. , 1. ]])
In [15]:
#returns the mean accuracy on the given test data and labels
m.score(iris.data,iris.target)
Out[15]:
0.99333333333333329
Content source: harishkrao/Machine-Learning
Similar notebooks: