问题描述
import streamlit as st
import pickle
st.title('My first app')
model = open('model2.pkl','rb')
car_nb = pickle.load(model)
def predict_price(name,year,nr_of_accidents,color_exterior,color_interior,car_mileage):
prediction=car_nb.predict([['name','year','nr_of_accidents','color_exterior','color_interior','car_mileage']])
print(prediction)
return prediction
def main():
st.title("Used Car Prices!!")
st.write('''
#
''')
name = st.text_input("Car","Type Here")
year = st.text_input("Year","Type Here")
nr_of_accidents = st.text_input("Accidents","Type Here")
color_exterior = st.text_input("Exterior Color","Type Here")
color_interior = st.text_input('Interior Color','Type Here')
car_mileage = st.text_input('Miles','Type Here')
result=""
if st.button("Predict"):
result=predict_price(([['name','car_mileage']]))
st.success('The price is {}'.format(result))
if __name__ =='__main__':
main()
TypeError:predict_price()缺少5个必需的位置参数:“ year”,“ nr_of_accidents”,“ color_exterior”,“ color_interior”和“ car_mileage”
解决方法
您显然在代码结尾处从调用predict_price()
的行复制粘贴了np.predict()
的调用。这将无法正常工作,因为错误消息指出predict_price()
期望有6个参数,而您只是传递了一个(嵌套列表)。您(很可能)应该更换:
result=predict_price(([['name','year','nr_of_accidents','color_exterior','color_interior','car_mileage']]))
使用
result = predict_price(name,year,nr_of_accidents,color_exterior,color_interior,car_mileage)