赞
踩
基于树模型的XGBoost则能很好地处理表格数据.所以打比赛常用
损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。
机器学习模型关于单个样本的预测值与真实值的差称为损失。损失越小,模型越好,如果预测值与真实值相等,就是没有损失。
用于计算损失的函数称为损失函数。模型每一次预测的好坏用损失函数来度量。
通常机器学习每一个算法中都会有一个目标函数,算法的求解过程是通过对这个目标函数优化的过程。在分类或者回归问题中,通常使用损失函数(代价函数)作为其目标函数。损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的算法使用的损失函数不一样。
损失函数或者代价函数的目的是:衡量模型的预测能力的好坏。
损失函数(Loss function):是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的哦,用L表示。
代价函数(Cost function):是定义在整个训练集上面的,也就是所有样本的误差的总和的平均,也就是损失函数的总和的平均,有没有这个平均其实不会影响最后的参数的求解结果。
xgboost目标函数
解释:
解释: 简单来说,代价指的就是预测值(估计值)与实际值之间的差,代价函数J就是让这个差趋于0,当代价函数J等于0的时候,这时候的预测值就和实际值是完全相等的,也就是说明此时我们已经对实际情况进行了完美的估计了。
如果是回归问题我们使用损失函数的是
MSE 即:
使用这个损失函数的原因就是这是一个线性回归问题所以使用这个损失函数
如果是分类问题我们使用的是对数损失函数:
即:
为什么这个损失函数函数能够用于分类问题呢?
我们不妨代入几个真实值和预测值进去(0-1)
XGBoost python 模块能够使用以下方式加载数据:
LIBSVM text format file (LIBSVM文本格式文件)
Comma-separated values (CSV) file (逗号分隔值(CSV)文件)
NumPy 2D array (NumPy 2D矩阵)
SciPy 2D sparse array (二维稀疏矩阵)
cuDF DataFrame
Pandas data frame
XGBoost binary buffer file (XGBoost二进制缓冲文件)
常用参数:
(1)一般参数:
(2)Tree Booster参数:
(3)学习任务参数:
(4)命令行参数:
## 基础函数库
import numpy as np
import pandas as pd
## 绘图函数库
import matplotlib.pyplot as plt
import seaborn as sns
#我们利用Pandas自带的read_csv函数读取并转化为DataFrame格式
data = pd.read_csv('train.csv')
## 利用.info()查看数据的整体信息
data.info()
首先我们打印出数据集整体信息:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 106644 entries, 0 to 106643
Data columns (total 23 columns):
Date 106644 non-null object
Location 106644 non-null object
MinTemp 106183 non-null float64
MaxTemp 106413 non-null float64
Rainfall 105610 non-null float64
Evaporation 60974 non-null float64
Sunshine 55718 non-null float64
WindGustDir 99660 non-null object
WindGustSpeed 99702 non-null float64
WindDir9am 99166 non-null object
WindDir3pm 103788 non-null object
WindSpeed9am 105643 non-null float64
WindSpeed3pm 104653 non-null float64
Humidity9am 105327 non-null float64
Humidity3pm 103932 non-null float64
Pressure9am 96107 non-null float64
Pressure3pm 96123 non-null float64
Cloud9am 66303 non-null float64
Cloud3pm 63691 non-null float64
Temp9am 105983 non-null float64
Temp3pm 104599 non-null float64
RainToday 105610 non-null object
RainTomorrow 106644 non-null object
dtypes: float64(16), object(7)
memory usage: 18.7+ MB
我们来看看各个数据的含义:
进行简单的数据查看,我们可以利用 .head() 头部.tail()尾部
head=data.head()
Backend Qt5Agg is interactive backend. Turning interactive mode on.
Date Location MinTemp ... Temp3pm RainToday RainTomorrow
0 2012/1/19 MountGinini 12.1 ... 22.0 No No
1 2015/4/13 Nhil 10.2 ... 23.7 No Yes
2 2010/8/5 Nuriootpa -0.4 ... 9.0 Yes No
3 2013/3/18 Adelaide 13.2 ... 21.7 No No
4 2011/2/16 Sale 14.1 ... 28.2 No No
[5 rows x 23 columns]
参考文章:
一.损失函数(代价函数)
二.正则项
三.模型原理
四.优化方法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。