2015-11-02 2 views
0

У меня есть набор данных значений частотной области, поэтому каждый элемент имеет "j" в конце, например "27.6695554346-5.51875942715j". это рис некоторых данных в матрицеИспользование комплекснозначных данных в RandomForestClassifier

enter image description here

Когда я пытаюсь использовать RandomForestClassifier со следующим кодом:

cfr = RandomForestClassifier(n_estimators=10,n_jobs =5) 
cfr.fit(X1,y1) 
predictedY2=cfr.predict(X2) 

У меня есть эта ошибка:

ValueError: could not convert string to float: (27.6695554346-5.51875942715j) 

Не могли бы вы объяснить, что я должен сделать, чтобы решить проблему?

+0

Во-первых, вы должны представить свои данные в виде сложных поплавками, а не строки (например, 'X1.astype (np.complex)') –

+0

X1.astype (np.complex) Traceback (самый последний вызов последнего): Файл " ", строка 1, в ТипError: требуется поплавок – Talia

+0

Что такое' X1' и откуда оно взялось? Почему он содержит строки в первую очередь? Основываясь на сообщении об ошибке, похоже, что в них содержатся скобки, то есть '' (27.6695554346-5.51875942715j) ", а не' "27.6695554346-5.51875942715j", которые препятствуют тому, чтобы numpy мог автоматически отбрасывать их комплексные поплавки. Вы не должны использовать строки для представления этого типа данных. –

ответ

0

Он должен преобразовать их в абсолютные значения , поэтому при применении np.abs в матрице проблема решена!

Смежные вопросы