Расскажу про алгоритм Случайного поиска с адаптацией для поиска информативных признаков.

preview_player
Показать описание
Алгоритм для поиска наиболее информативных признаков и манипуляций над признаками, повышающими качество модели.

В отличие от генетического алгоритма матрица "признак - манипуляции" заполняется весами (вероятности выбора). Признаки и манипуляции выбираются случайно. Если качество модели с данным выбором снизилось, то веса использованных признаков и манипуляций уменьшаются (снижается вероятность их выбора). Если же качество модели возросло - веса увеличиваются.

0:20 Идея алгоритма Random Search with Adaptation
2:08 Пример реализации алгоритма для задачи классификации
5:30 Пример для задачи регрессии. Медоты класса Random Search
8:00 Надежда не покидает

Рекомендации по теме
Комментарии
Автор

Доброго времени суток! Как исправить ошибку?

svitlanakozyr
Автор

AttributeError Traceback (most recent call last)
Cell In[9], line 8
1 rs = RSwA(X, y, # передаем признаки и целевую переменную
2 iterations=250, # число итераций
3 manipulations="1000", # какие манипуляции над признаками пробовать
4 model=model, # модель
5 desired_score=None) # желаемое качество
7 for i in
----> 8 rs.go_search()
10 if rs.desired_score is not None and rs.desired_score >= rs.score:
11 break

Cell In[4], line 110, in RSwA.go_search(self)
107 return
109 if self.cv_all_scores[-1] > self.cv_all_scores[-2] * 1.01:
--> 110 self.change_weights(1.1)
111 elif self.cv_all_scores[-1] < self.cv_all_scores[-2] * 0.99:
112 self.change_weights(0.9)

Cell In[4], line 94, in RSwA.change_weights(self, adapt)
91 self.weights = np.reshape(a, self.weights.shape)
93 temporary = pd.DataFrame([a],
---> 94 self.d_weights = self.d_weights.append(temporary, ignore_index=True)

File ~\anaconda3\Lib\site-packages\pandas\core\generic.py:5989, in NDFrame.__getattr__(self, name)
5982 if (
5983 name not in self._internal_names_set
5984 and name not in self._metadata
5985 and name not in self._accessors
5986 and
5987 ):
5988 return self[name]
-> 5989 return object.__getattribute__(self, name)

AttributeError: 'DataFrame' object has no attribute 'append'

svitlanakozyr