1_XGBoost_Binary_Classification.py

import pickle
#pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议
import xgboost as xgb
import numpy as np
from sklearn.model_selection import KFold,train_test_split,GridSearchCV
#KFold折交叉验证.
#train_test_split函数用于将矩阵随机划分为训练子集和测试子集,
#并返回划分好的训练集测试集样本和训练集测试集标签.
#gridSearchCV网格搜索
from sklearn.metrics import confusion_matrix,mean_squared_error
"""
confusion_matrix混淆矩阵
mean_squared_error均方误差
"""
from sklearn.datasets import load_iris,load_digits,load_boston
"""
load_digits手写字体数据集
"""
from sklearn.datasets import load_iris

rng=np.random.RandomState(31337)
"""
#numpy.random.RandomState()是一个伪随机数生成器。
#伪随机数是用确定性的算法计算出来的似来自[0,1]均匀分布的随机数序列。
# 并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。
print("rng=",rng)
rng= RandomState(MT19937)
MT19937高质量的伪随机数
https://blog.csdn.net/caimouse/article/details/55668071
"""

print("Zeros and Ones from the Digits dataset:binary classification")
digits=load_digits(5)
y=digits['target']
X=digits['data']

kf=KFold(n_splits=5,shuffle=True,random_state=rng)
"""
n_splits:表示划分几等份
shuffle:在每次划分时,是否进行洗牌
若为Falses时,其效果等同于random_state等于整数,每次划分的结果相同
若为True时,每次划分的结果都不一样,表示经过洗牌,随机取样的
random_state:随机种子数
"""

for train_index,test_index in kf.split(X):
	xgb_model=xgb.XGBClassifier().fit(X[train_index],y[train_index])
	predictions=xgb_model.predict(X[test_index])
	actuals=y[test_index]
	print("confusion matrix")
	print(confusion_matrix(actuals,predictions))

Zeros and Ones from the Digits dataset:binary classification
confusion matrix
[[36 0 0 0 2]
[ 0 38 0 0 0]
[ 0 1 30 0 0]
[ 0 0 0 35 0]
[ 0 0 0 0 39]]
confusion matrix
[[30 0 0 0 0]
[ 0 32 0 1 0]
[ 0 0 44 0 0]
[ 0 0 0 37 0]
[ 0 0 0 0 36]]
confusion matrix
[[39 0 0 0 0]
[ 0 33 0 0 0]
[ 0 0 26 0 0]
[ 0 1 1 45 0]
[ 0 0 0 0 35]]
confusion matrix
[[33 0 0 0 0]
[ 0 37 0 0 0]
[ 0 0 37 0 0]
[ 0 0 0 36 0]
[ 0 0 0 0 37]]
confusion matrix
[[38 0 0 0 0]
[ 1 40 0 0 0]
[ 1 0 38 0 0]
[ 0 0 0 28 0]
[ 0 0 0 0 34]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值