Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %store -r usa_binary
- rfr = RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
- max_depth=5, max_features=0.2, max_leaf_nodes=None,
- min_impurity_decrease=0.0, min_impurity_split=None,
- min_samples_leaf=3, min_samples_split=2,
- min_weight_fraction_leaf=0.0, n_estimators=138, n_jobs=1,
- oob_score=False,
- verbose=0, warm_start=False)
- accuracy = []
- selectedFeatures = []
- precs = []
- for i in range(0, len(usa_binary), 7):
- print(i)
- train = fromListToSets([usa_binary[i]], 1, removeI = True)
- accuracyMax = 0
- features = []
- prec = 10
- if (train.shape[0] > 40):
- for i in [10, 20, 30, 40, 50, 60, 70]:
- try:
- feat_selector = BorutaPy(rfr, n_estimators='auto', random_state=1, perc = i, verbose=0, alpha=0.05)
- feat_selector.fit(train[:, 1:], train[:, 0])
- X_filtered = feat_selector.transform(train[:, 1:])
- k = 20
- scores = np.zeros((k))
- kFold = KFold(n_splits=k, random_state=None)
- y_pred = []
- if X_filtered.shape[1] == 0:
- continue
- for train_index, test_index in kFold.split(train[:, 0]):
- train_X = X_filtered[train_index, :]
- train_Y = train[:, 0][train_index]
- test_X = X_filtered[test_index, :]
- test_Y = train[:, 0][test_index]
- rfr.fit(train_X, train_Y)
- pred = rfr.predict(test_X)
- y_pred.append(pred)
- y_pred = list(itertools.chain.from_iterable(y_pred))
- accuracyForTree = np.sum(y_pred == train[:, 0]) / len(train[:, 0])
- if accuracyMax < accuracyForTree:
- accuracyMax = accuracyForTree
- features = feat_selector.support_
- prec = i
- except (KeyboardInterrupt, SystemExit):
- raise
- except:
- pass
- accuracy.append(accuracyMax)
- selectedFeatures.append(features)
- precs.append(prec)
- else:
- accuracy.append(0)
- selectedFeatures.append(0)
- precs.append(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement