该函数在python中无法正常工作

时间:2018-11-22 10:02:01

标签: python

我试图预测石油的未来价格,但在此之前,我编写了一个简单的函数,使用matplotlib可视化工具查看日期与价格的比较。但是,代码中有问题,我找不到应该通过的内容。 这是代码:

dates=[]
prices=[]

def getdata(filename):
    with open(filename,'r') as csvfile:
        csvFilereader=csv.reader(csvfile)
        next(csvFilereader)
        for row in csvFilereader:
            dates.append(int(row[4].split('-')[0]))
            prices.append(float(row[2]))
    return
def predicted_price(dates, prices, x):

    dates=np.reshape(dates,len(dates),1)

    svr_linear= SVR(kernel='linear', C=1e3)
    svr_poly= SVR(kernel='poly', C=1e3, degree=2)
    svr_rbf= SVR(kernel='rbf', C=1e3, gamma=0.1)

    svr_linear.fit(dates,prices)
    svr_ploy.fit(dates,prices)
    svr_rbf.fit(dates,prices)

    plt.scatter(dates,prices, color='black', label='Data')
    plt.plot(dates, svr.rbf.predict(dates), color='red', label='RBF Model')
    plt.plot(dates, svr.poly.predict(dates), color='blue', label='Poly Model')
    plt.plot(dates, svr.linear.predict(dates), color='green', label='Linera Model')

    plt.xlabel('Dates')
    plt.ylabel('Prices')
    plt.title('Regression')

    plt.legend()
    plt.show()

    return svr_rbf.predict(x[4]), svr_linear(x[4]), svr_poly(x[4])

getdata('D:\\android\\trans1.csv')

predicted_prices=predicted_price([dates,prices,10])
print(predicted_prices) 

这是错误:

TypeError: Traceback (most recent call last)
<ipython-input-20-935270aaab8d> in <module>()
     38 getdata('D:\\android\\trans1.csv')
     39 
---> 40 predicted_prices=predicted_price([dates,10.2,10])
     41 print(predicted_prices)



TypeError: predicted_price() missing 2 required positional arguments: 'prices' and 'x'

这是数据快照: enter image description here

1 个答案:

答案 0 :(得分:2)

更改

predicted_prices=predicted_price([dates,10.2,10])

predicted_prices=predicted_price(dates,10.2,10)

因为,predicted_price期待三个辩论,而您只给出一个list[dates,10.2,10]