python - 支持向量回归:TypeError:必须是实数,而不是 str
问题描述
我正在尝试将 sklearn SVR 用于小型数据集。当我尝试 fit() 数据时出现错误
TypeError:必须是实数,而不是 str
这是我的数据和代码:
Revenue Units Rev_per_unit
0 147754.0 8333629.0 17.73
1 126146.0 7601824.0 16.59
2 152385.0 8487163.0 17.95
3 138703.0 8170619.0 16.98
4 157860.0 8589258.0 18.38
5 159981.0 8634245.0 18.53
6 160006.0 9063836.0 17.65
7 143556.0 9315878.0 15.41
8 129380.0 9012887.0 14.35
9 135771.0 9370077.0 14.49
10 129593.0 9018405.0 14.37
11 123941.0 9410973.0 13.17
from sklearn.svm import SVR
df = pd.read_csv('revenue.csv')
X = df[['Revenue', 'Unit']]
y = df['Rev_per_unit']
X_train, X_test, y_train, y_test = train_test_split(X, y)
svr_reg = SVR(gamma='scale', C=1.0, epsilon=0.2)
svr_reg.fit(X_train, y_train)
我理解错误但是当我使用相同的数据时LinearRegression()
,对于相同的 X_train、y_train,我没有收到任何错误。
解决方案
该参数gamma
需要一个浮点值,但您正在传递"scale"
. 我知道文档在这一点上有点误导。
所以只需更改gamma
为浮点值,如下所示:
X_train, X_test, y_train, y_test = train_test_split(X, y)
svr_reg = SVR(gamma=0.001, C=1.0, epsilon=0.2)
svr_reg.fit(X_train, y_train)
或者只是删除gamma
参数。
推荐阅读
- php - 计算后输出货币(Sprintf)
- css - 我无法修复
- unix - 在 unix/aix 中重载文件
- python - 将dict存储到pandas Dataframe中时出现问题
- mysql - GROUP_CONCAT 中的条件
- java - 我可以只使用静态(类)方法编写代码吗?
- c# - 设置 AlertDialog 按钮的自定义字体
- reactjs - 如何使用 ag-grid react 在表格中单击单元格时打开弹出窗口?
- apache-spark - 在集群模式下在 Kubernetes 上提交 Spark 应用程序:配置的服务帐户无权访问
- angular - 使用 errorStateMatcher 作为指令