2016-12-26 96 views
1

需要一個使用Pandas DataFrame計算RMSE的簡單示例。提供有功能,在循環真正的返回和預測值:Python Pandas:從數據幀計算RMSE的簡單示例

def fun (data): 
    ... 
    return trueVal, predVal 

for data in set: 
    fun(data) 

然後一些代碼,使這些結果在下面的數據幀中x是一個真正的價值和p是一個預測值:

In [20]: d 
Out[20]: {'p': [1, 10, 4, 5, 5], 'x': [1, 2, 3, 4, 5]} 

In [21]: df = pd.DataFrame(d) 

In [22]: df 
Out[22]: 
    p x 
0 1 1 
1 10 2 
2 4 3 
3 5 4 
4 5 5 

問題:

1)如何把結果從fun功能df數據框?

2)如何使用df數據框計算RMSE?

+1

檢查:http://stackoverflow.com/questions/17197492/root-mean- python中的平方誤差 – MYGz

+0

可能的重複[均方根誤差i ((df.p - df.x)** 2)。(https://stackoverflow.com/questions/17197492/root-mean-square-error-in-python) –

回答

3

問題1
這取決於數據格式。而且我希望你已經有了真正的價值,所以這個功能只是通過。

問題2

隨着pandas
((df.p - df.x) ** 2).mean() ** .5

隨着numpy
(np.diff(df.values) ** 2).mean() ** .5

+1

不應該是'((df.p - df.x)** 2)。 mean()** .5' for pandas,as it's root ** mean ** squared error? –

+0

@張天寶你說得對 – piRSquared