数据挖掘TASK1_赛题理解

赛题理解
1.赛题概况
根据给定的数据集建立模型,分析二手汽车的交易价格。
数据来自某交易平台,总数据量超过40w,包含31列变量,15列为匿名变量。从中抽取15万条作为训练集,5万条作为测试集A,5万条作为测试集B,同时会对name,model,brand和regionCode等信息进行脱敏。

2.数据概况
说明列的数据特征。匿名特征:未告知数据列所属性质
train.csv:

  • name-汽车编码
  • regData-汽车注册时间
  • model-车型编码
  • brand-品牌
  • bodyType-车身类型
  • fuelType-燃油类型
  • gearbox-变速箱
  • power-汽车功率
  • kilometer-汽车行驶公里
  • notRepairedDamage-汽车尚未修复的损坏
  • regionCode-看车地区编码
  • seller-销售方
  • offerType-报价类型
  • creatData-广告发布时间
  • price-汽车价格
  • v_0’, ‘v_1’, ‘v_2’, ‘v_3’, ‘v_4’, ‘v_5’, ‘v_6’, ‘v_7’, ‘v_8’, ‘v_9’, ‘v_10’, ‘v_11’, ‘v_12’, ‘v_13’,‘v_14’(根据汽车的评论、标签等大量信息得到的embedding向量)【人工构造 匿名特征】

3、预测指标
评价标准为MAE(平均绝对误差
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}

分类问题的评价指标:
二分类器:accuracy、accuracy, [Precision,Recall,F-score,Pr曲线],ROC-AUC曲线
多分类器:accuracy, [宏平均和微平均,F-score]

回归问题的评价指标:
MAE(平均绝对误差), MSE(均方误差), R^2(残查平方和)

4、分析赛题
典型的回归问题,应用xgb, lgb, catboost,以及pandas,numpy,matplotlib, seabor等常用库来进行挖掘。

import pandas as pd
import numpy as np
#读取数据
path = 'C:/Users/lenovo/Desktop/data/'
Train_data = pd.read_csv(path+'used_car_train_20200313.csv', sep=',')
Test_data = pd.read_csv(path+'used_car_testA_20200313.csv', sep=',')
print('Train data shape:', Train_data.shape)
print('Test data shape:', Test_data.shape)
print(Train_data.head())
#计算分类指标
#1、accuracy值
from sklearn.metrics import accuracy_score
y_pred = [0, 1, 0, 1]
y_true = [0, 1, 1, 1]
print('ACC:', accuracy_score(y_true, y_pred))
#2、precision值,rechall,F1-score
from sklearn import metrics
y_pred = [0, 1, 0, 0]
y_true = [0, 1, 0, 1]
print('Presion:',metrics.precision_score(y_true, y_pred)) #TP/TP+FP 精确率
print('Recall', metrics.recall_score(y_true, y_pred)) #TP/TP+FN 召回率
print('F1-score:', metrics.f1_score(y_true, y_pred))
#计算回归指标:
#1、MAPE
def mape(y_true, y_pred):
    return np.mean(abs((y_pred-y_true)/y_true))
#2、MAE,MSE,RMSE
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 = metrics.mean_squared_error(y_true, y_pred)
RMSE = np.sqrt(MSE)
MAE = metrics.median_absolute_error(y_true, y_pred)
print('MSE:',MSE)
print('RMSE:',RMSE)
print('MAE:', MAE)
#3.R^2
from sklearn.metrics import r2_score
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])
print('R2-score:', r2_score(y_true, y_pred))
发布了6 篇原创文章 · 获赞 0 · 访问量 96

猜你喜欢

转载自blog.csdn.net/weixin_43959248/article/details/105067643