Evaluate the accuracy
how to evaluate the accuracy of test and predict data
numpy <–> dataframe
为提高数据对比的准确度,需要用到下面方法
- 均方误差(Mean Square Error,MSE)
- 均方根误差(Root Mean Square Error,RMSE)
- 平均绝对误差(Mean Absolute Error,MAE)
方差(variance/deviation Var):被用于描述随机变量的数据相互间的偏离程度(分散程度),在概率论中是指随机变量与其数学期望作差的平方和再均化
标准差 :standard Deviation
:标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的两组组数据,标准差未必相同。MSE: Mean Squared Error
均方误差是指参数估计值与参数真值之差平方的期望值;
MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
RMSE
均方根误差:均方根误差是均方误差的算术平方根方差/均方误差的区别:区别在于MSE/RMSE应用情景存在一个真实值,其衡量的是各数据偏离真实值的情况,而后者则是各数据偏离样本平均值的情况.
MAE :Mean Absolute Error
平均绝对误差是绝对误差的平均值
平均绝对误差能更好地反映预测值误差的实际情况.
fi表示预测值,yi表示真实值;
from sklearn import metrics
import numpy as np # 引入numpy是因为sklearn里面没有直接得到RMSE的方法
metrics.mean_squared_error(y_test, y_pred)
np.sqrt(metrics.mean_squared_error(y_test, y_pred))
观察y_pred
的类型发现他是numpy array类型,而y_test
是pandas DataFrame类型,这两种类型就不能一起做merge之类的操作,所以可以做相互转换成同一类型进行操作。
type(y_pred)
numpy.ndarray
type(y_test)
pandas.core.frame.DataFrame
# numpy的one dimensional array和 panda.Series类似, two dimensional array和pandas.DataFrame类似
np_arrays = np.array([['Earth', 'live'], ['Moon', 'Rock'],['Sun', 'Hot']])
print(np_arrays)
print(np_arrays[1][0])
[['Earth' 'live']
['Moon' 'Rock']
['Sun' 'Hot']]
Moon
# 相互转换
y_pred_df = pd.DataFrame(y_pred)
y_test_np = np.array(y_test)
TO BE CONTINUED…