逻辑回归 SKLEARN 无法将字符串转换为浮点数:“DailyReturns”

Posted

技术标签:

【中文标题】逻辑回归 SKLEARN 无法将字符串转换为浮点数:“DailyReturns”【英文标题】:Logistic Regression SKLEARN could not convert string to float: 'DailyReturns' 【发布时间】:2019-10-22 10:31:09 【问题描述】:

尝试运行逻辑回归,但我收到此错误could not convert string to float: 'DailyReturns' 我检查了我的数据DailyReturns 是列名。

另外:apple['DailyReturns'].dtype 提供 dtype('float64')apple['_lortrain'].dtype 提供 dtype('float64')

错误:

ValueError: could not convert string to float: 'DailyReturns'

代码:

_lortrain = np.sign(apple['DailyReturns'])
apple['_lortrain'] = _lortrain
_data_train, _data_test,  = train_test_split(apple,test_size = 0.2)
X_train = _data_train.columns[4:9].values.reshape(-1,1)
y_train = _data_train['_lortrain'].values.reshape(-1,1)
#X_train = X_train.apply(pd.to_numeric, errors='coerce')
#y_train = y_train.apply(pd.to_numeric, errors='coerce')
X_test = _data_test.columns[4:9].values.reshape(-1,1)
y_test = _data_test['_lortrain'].values.reshape(-1,1)
_LogR = lor(C = 1e6, penalty='l2', tol=0.01, solver='saga')
_LogR.fit(X_train,y_train)
_logr = _LogR.predict(X_test)

数据:

apple.columns[4:9]

Index(['DailyReturns', 'Lag_Returns_1', 'Lag_Returns_2', 'Lag_Returns_3',
       'Lag_Returns_4'],
      dtype='object')

Close   DailyReturns    Lag_Returns_1   Lag_Returns_2   Lag_Returns_3   Lag_Returns_4   Lag_Returns_5
Date                            
1980-12-22  0.53    0.058269    0.040822    0.042560    0.021979    -0.085158   -0.040005
1980-12-23  0.55    0.037041    0.058269    0.040822    0.042560    0.021979    -0.085158
1980-12-24  0.58    0.053110    0.037041    0.058269    0.040822    0.042560    0.021979
1980-12-26  0.63    0.082692    0.053110    0.037041    0.058269    0.040822    0.042560
1980-12-29  0.64    0.015748    0.082692    0.053110    0.037041    0.058269    0.040822

【问题讨论】:

始终发布完整的错误消息。 【参考方案1】:

_data_train.columns[4:9].values 是列名(字符串)列表,而不是列数据。你应该使用_data_train.iloc[:,4:9].values。或者,更好的是:

X_train = _data_train.iloc[:,4:9] # No values or reshape

【讨论】:

以上是关于逻辑回归 SKLEARN 无法将字符串转换为浮点数:“DailyReturns”的主要内容,如果未能解决你的问题,请参考以下文章

逻辑回归中的概率校准错误:ValueError:无法将字符串转换为浮点数:'OLIFE'

sklearn-LinearRegression:无法将字符串转换为浮点数:'--'

sklearn 决策树 - 无法将字符串转换为浮点数

Sklearn Pipeline ValueError:无法将字符串转换为浮点数

使用 sklearn 时出现错误:ValueError:无法将字符串转换为浮点数:

sklearn cross_validation ValueError:无法将字符串转换为浮点数