为什么在应用任何机器学习算法之前,需要将Python中的列表转换为数组(如Numpy数组)?
回答:
这并不是必须的,但由于Numpy/SciPy模块提供了大量方便且非常快速(向量化)的函数/方法,使用起来非常便捷。
实际上,大多数机器学习方法(至少在sklearn
模块中)会尝试将输入数组转换为Numpy数组,以便能够使用Numpy的函数/方法。
请看以下示例,我在这里没有使用Numpy数组,而是使用了“原生”Python列表:
from sklearn.linear_model import LinearRegressionX = [[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'>