【发布时间】:2018-08-26 07:34:39
【问题描述】:
为什么python中的list在应用任何机器学习算法之前都需要先转换成数组(比如numpy数组)?
【问题讨论】:
-
因为函数是这样写的。
-
为什么不,你应该先阅读代码并理解它的作用。
为什么python中的list在应用任何机器学习算法之前都需要先转换成数组(比如numpy数组)?
【问题讨论】:
这不是必须,但它非常方便,因为 Numpy/SciPy 模块提供了大量方便且非常快速(矢量化)的函数/方法。
实际上大多数机器学习方法(至少在sklearn 模块中)都会尝试将输入数组转换为 Numpy 数组,以便能够使用 Numpy 的函数/方法。
考虑以下演示,其中我不使用 Numpy 数组,而是使用“Vanilla”Python 列表:
from sklearn.linear_model import LinearRegression
X = [[1,2,3], [4, 5, 6], [7,8,9]]
y = [30, 20, 10]
lr = LinearRegression().fit(X, y)
pred = lr.predict([[13,14,15], [16,17,18]])
print(pred)
print(type(pred))
输出:
[-10. -20.]
<class 'numpy.ndarray'>
【讨论】: