Хорошо, поэтому я хочу запустить рекурсивное извлечение объектов в моем наборе данных с количеством объектов X и на каждой итерации удалять объект с самым низким рейтингом, чем повторно запускать RFE, пока у меня не останется только 5 объектов.Тем не менее, я понятия не имею, как это кодировать.
Первая часть запуска RFE - это хорошо, но я не хочу сидеть и вручную перезапускать RFE и удалять одну функцию за раз, для этого потребуется вечность.Может ли кто-нибудь помочь мне кодировать это?
import matplotlib.pyplot as plt
from sklearn.model_selection import cross_val_score
from sklearn.metrics import accuracy_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import RFE
from sklearn.datasets import make_friedman1
X, y = make_friedman1(n_samples=2000, n_features=85, random_state=42)
# split data into train and test split
from sklearn.model_selection import train_test_split
# if we need train test split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3,random_state=42)
estimator = RandomForestClassifier(n_estimators=500, min_samples_leaf=5,
min_samples_split=8, max_features='auto',
max_depth=90, bootstrap=True)
selector = RFE(estimator, 83, step=1)
selector = selector.fit(X_train, y_train)
# predict and get rankings and optimal number of features
selector.fit(X_test, y_test)
selector.predict(X_test)
ranking = selector.ranking_
y_hats = selector.predict(X_test)
predictions = [round(value) for value in y_hats]
accuracy = accuracy_score(y_test, predictions)
print("Test Accuracy: %.2f%%" % (accuracy*100.0))
# index rankings
header = X_test.columns
frame = pd.DataFrame(ranking, index=header)
frame = frame.rename(columns = {frame.columns[0]: 'rankings'}, inplace = False)
frame = frame.sort_values(by = 'rankings', ascending=True)
# save table
from pandas.tools.plotting import table
ax = plt.subplot(111, frame_on=True) # no visible frame
ax.xaxis.set_visible(False) # hide the x axis
ax.yaxis.set_visible(False) # hide the y axis
table(ax, frame) # where df is your data frame