如何在 scikit 线性回归的预测函数中传递 float 参数?
How to pass float argument in predict function of scikit linear regression?
我正在使用 scikit linear regression - 单变量根据 x 预测 y。参数是 float 数据类型。我如何将浮点数转换为 numpy 数组来预测输出?
import matplotlib.pyplot as plt
import pandas
import numpy as np
from sklearn import linear_model
import sys
colnames = ['charge_time', 'running_time']
data = pandas.read_csv('trainingdata.txt', names=colnames)
data = data[data.running_time < 8]
x = np.array(list(data.charge_time))
y = np.array(list(data.running_time))
clf = linear_model.LinearRegression() # Creating a Linear Regression Modal
clf.fit(x[:,np.newaxis], y) # Fitting x and y array as training set
data = float(sys.stdin.readline()) # Input is Float e.g. 4.8
print clf.predict(data[:,np.newaxis]) # As per my understanding parameter should be in 1-D array.
首先提一个与你的问题没有直接关系的建议:
你不需要做 x = np.array(list(data.charge_time))
,你可以直接调用 x = np.array(data.charge_time)
或者,更好的是,x = data.charge_time.values
直接 returns 底层的 ndarray.
我也不清楚为什么要使用 np.newaxis
.
向输入数组添加维度
关于您的问题,predict
需要一个类似数组的参数:可以是列表、numpy 数组或其他。
所以你应该可以做到 data = np.array([float(sys.stdin.readline())])
。需要将浮点值放入列表 ([]
) 中,因为如果没有它,numpy 将创建一个 0-d 数组(即单个值,不可分片)而不是 1-d 数组。
我正在使用 scikit linear regression - 单变量根据 x 预测 y。参数是 float 数据类型。我如何将浮点数转换为 numpy 数组来预测输出?
import matplotlib.pyplot as plt
import pandas
import numpy as np
from sklearn import linear_model
import sys
colnames = ['charge_time', 'running_time']
data = pandas.read_csv('trainingdata.txt', names=colnames)
data = data[data.running_time < 8]
x = np.array(list(data.charge_time))
y = np.array(list(data.running_time))
clf = linear_model.LinearRegression() # Creating a Linear Regression Modal
clf.fit(x[:,np.newaxis], y) # Fitting x and y array as training set
data = float(sys.stdin.readline()) # Input is Float e.g. 4.8
print clf.predict(data[:,np.newaxis]) # As per my understanding parameter should be in 1-D array.
首先提一个与你的问题没有直接关系的建议:
你不需要做 x = np.array(list(data.charge_time))
,你可以直接调用 x = np.array(data.charge_time)
或者,更好的是,x = data.charge_time.values
直接 returns 底层的 ndarray.
我也不清楚为什么要使用 np.newaxis
.
关于您的问题,predict
需要一个类似数组的参数:可以是列表、numpy 数组或其他。
所以你应该可以做到 data = np.array([float(sys.stdin.readline())])
。需要将浮点值放入列表 ([]
) 中,因为如果没有它,numpy 将创建一个 0-d 数组(即单个值,不可分片)而不是 1-d 数组。