零基础入门数据挖掘 - 二手车交易价格预测
https://tianchi.aliyun.com/competition/entrance/231784/introduction?spm=5176.12281957.1004.1.38b02448ausjSX (https://tianchi.aliyun.com/competition/entrance/231784/introduction? spm=5176.12281957.1004.1.38b02448ausjSX)
以某交易平台的二手车交易记录,预测二手车交易的价格.
评价标准:MAE (Mean Absolute Error)
M A E = ∑ i = 1 n ∣ y i − y ^ i ∣ n MAE=\frac{\sum_{i=1}^{n}\left|y_{i}-\hat{y}{i}\right|}{n} MAE=n∑i=1n∣yi−y^i∣
其中 y i y{i} yi代表第 i i i个样本的真实值,其中 y ^ i \hat{y}_{i} y^i代表第 i i i个样本的预测值。
数据:某交易平台的二手车交易记录
数据量:超过40w,
列变量:31列 (其中15列为匿名变量)
训练集:15w条
测试集:A集 - 5w条,B集 - 5w条
*name、model、brand和regionCode等信息已脱敏。
import pandas as pd
pd.read_csv(filepath_or_buffer, sep=' ')
Train_data.head()
对于csv数据文件可用利用pd.read_csv()打开,train_data.head()可用查看部分data
pd.read_csv()参数列表
sep=' ' # 以,为数据分隔符
shkiprows= 10 # 跳过前十行
nrows = 10 # 只去前10行
parse_dates = ['col_name'] # 指定某行读取为日期格式
index_col = ['col_1','col_2'] # 读取指定的几列
error_bad_lines = False # 当某行数据有问题时,不报错,直接跳过,处理脏数据时使用
na_values = 'NULL' # 将NULL识别为空值
参考:https://blog.csdn.net/The_Time_Runner/article/details/86187900
http://www.bubuko.com/infodetail-2521815.html?__cf_chl_jschl_tk__=c2e24d34357dbb8842e9665e5f22e6665a1906d6-1584883918-0-Abrta6aTtIOz11QC_5ya0k5KbhLiXNk94QUTBcZ_IXuzjCGi-3N1fthJerS6ikgfhVMSBdFxZnu6CBpKtxZBFIg-6ZIq4pzZ5Jlzhf5_08wI76Hsc203U8uRByQAhMuf50q_gUeb8lYc-qnrQmH4UNof1jU9-j-xJqBgrcwPwzjFvPAtBPtGt8dBid21TxHfrm1nRmVfi5rVStzfLDF2yRZVx2vsU2utHocxXEdVQhdOPK_yG3hrKc2FBIIFug8EVTjCy0pWAQ4zq1hN94cQvKDINAZk8xC3t4hyJzJB9EiYhX8vXUlLJluANnz9u02Zww
import numpy as np
from sklearn import metrics
#分类指标
y_pred = [0, 1, 0, 0]
y_true = [0, 1, 0, 1]
print('Precision',metrics.precision_score(y_true, y_pred))
print('Recall',metrics.recall_score(y_true, y_pred))
print('F1-score:',metrics.f1_score(y_true, y_pred))
print('ACC:', metrics.accuracy_score(y_true, y_pred))
#回归指标
# MAPE需要自己实现
def mape(y_true, y_pred):
return np.mean(np.abs((y_pred - y_true) / y_true))
y_true = np.array([1.0, 5.0, 4.0, 3.0, 2.0, 5.0, -3.0])
y_pred = np.array([1.0, 4.5, 3.8, 3.2, 3.0, 4.8, -2.2])
# MSE
print('MSE:',metrics.mean_squared_error(y_true, y_pred))
# RMSE
print('RMSE:',np.sqrt(metrics.mean_squared_error(y_true, y_pred)))
# MAE
print('MAE:',metrics.mean_absolute_error(y_true, y_pred))
# MAPE
print('MAPE:',mape(y_true, y_pred))
sklearn基于NumPy、Scipy、MatPlotLib,详细参考https://www.jianshu.com/p/6ada34655862
评价指标用法https://blog.csdn.net/Yqq19950707/article/details/90169913
评价指标总结
https://www.cnblogs.com/mdevelopment/p/9456486.html
https://www.cnblogs.com/harvey888/p/6964741.html