如何将用户输入用于预测 scikit 学习
How to take user input for prediction scikitlearn
我正在尝试使用 Streamlit 制作一个网络应用程序,并希望通过 scikitlearn 使用多项式回归来获取用户输入以预测下一个值。
我将其用于 streamlit 的用户输入
user_input = st.number_input("input number")
然后根据我找到的教程进行预测
pol.predict(poly.fit_transform(user_input))
这不起作用,我收到此错误:
ValueError: Expected 2D array, got scalar array instead:
array=0.0.
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample
.
然后我尝试了以下在线教程:
model = numpy.poly1d(numpy.polyfit(X,y,3))
number = model(user_input)
print(case)
我收到此错误:
TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('float64')
如果这是日期时间数据的问题,我之前已对其进行了转换。至于另一个错误,我之前在定义X和y时也对数据进行了整形。
你知道如何解决这个问题吗?
大多数 scikit-learn 函数使用 numpy 数组数据类型,因此您的输入必须是 numpy 数组类型。您使用 st.number_input
获得的原始输入可能是一个浮点数,因此您需要将其存储在一个 numpy 数组中,例如:
user_input = np.array(user_input).reshape(-1,1)
假设模型期望输入特征向量 X 具有一个特征。
此外,我不知道您为什么使用 st.number_input
而不是更通用的 input()
命令,然后转换输入。这可能会更健壮一些,不会给你像 dtype('<M8[ns]')
这样的数据类型
我正在尝试使用 Streamlit 制作一个网络应用程序,并希望通过 scikitlearn 使用多项式回归来获取用户输入以预测下一个值。
我将其用于 streamlit 的用户输入
user_input = st.number_input("input number")
然后根据我找到的教程进行预测
pol.predict(poly.fit_transform(user_input))
这不起作用,我收到此错误:
ValueError: Expected 2D array, got scalar array instead:
array=0.0.
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample
.
然后我尝试了以下在线教程:
model = numpy.poly1d(numpy.polyfit(X,y,3))
number = model(user_input)
print(case)
我收到此错误:
TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('float64')
如果这是日期时间数据的问题,我之前已对其进行了转换。至于另一个错误,我之前在定义X和y时也对数据进行了整形。
你知道如何解决这个问题吗?
大多数 scikit-learn 函数使用 numpy 数组数据类型,因此您的输入必须是 numpy 数组类型。您使用 st.number_input
获得的原始输入可能是一个浮点数,因此您需要将其存储在一个 numpy 数组中,例如:
user_input = np.array(user_input).reshape(-1,1)
假设模型期望输入特征向量 X 具有一个特征。
此外,我不知道您为什么使用 st.number_input
而不是更通用的 input()
命令,然后转换输入。这可能会更健壮一些,不会给你像 dtype('<M8[ns]')