【Deepin 20系统】机器学习分类算法模型xgboost、lightgbm、catboost安装及使用

简介: 介绍了在Deepin 20系统上使用pip命令通过清华大学镜像源安装xgboost、lightgbm和catboost三个机器学习分类算法库的过程。

1 安装

conda安装一直未成功,只有用pip安装

pip install xgboost -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install lightgbm -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install catboost -i https://pypi.tuna.tsinghua.edu.cn/simple

2 使用

源码下载
数据集是来源天池赛题-天猫重复购买

import numpy as np
import pandas as pd
from lightgbm import LGBMClassifier,Dataset
from xgboost import XGBClassifier,DMatrix
from catboost import CatBoostClassifier
from sklearn.model_selection import train_test_split
from sklearn.model_selection import StratifiedKFold

if __name__== '__main__':

    train = pd.read_csv('repeat buyer train data.csv',sep=',')
    predict = pd.read_csv('repeat buyer test data.csv', sep=',')
    col_del = train.ix[:,(train==0).all()].columns
    train = train.drop(col_del,axis=1)
    predict = predict.drop(col_del,axis=1)

    train = train.fillna(-1)
    predict = predict.fillna(-1)
    train[['age_range', 'gender']] = train[['age_range', 'gender']].astype('int8')
    predict[['age_range', 'gender']] = predict[['age_range', 'gender']].astype('int8')
    label = train['label']
    trainNew = train.drop(['label'],axis=1)

    cat_features = [0,1,2,3]

    # 构造训练集和测试集
    def trainData(train_df,label_df):
        skv = StratifiedKFold(n_splits=5, shuffle=True, random_state=620)
        trainX = []
        trainY = []
        testX = []
        testY = []
        for train_index, test_index in skv.split(X=train_df, y=label_df):
            train_x, train_y, test_x, test_y = train_df.iloc[train_index, :], label_df.iloc[train_index], \
                                               train_df.iloc[test_index, :], label_df.iloc[test_index]

            trainX.append(train_x)
            trainY.append(train_y)
            testX.append(test_x)
            testY.append(test_y)
        return trainX,trainY,testX,testY

    trainX,trainY,testX,testY = trainData(trainNew,label)

    # 将训练数据集划分分别训练5个lgbm,xgboost和catboost 模型
    # lightgbm模型

    pred_lgbms = []
    for i in range(5):
        lgbm = LGBMClassifier(n_estimators=2000,objective='binary',num_leaves=31,max_depth=5,learning_rate=0.03,
                              reg_lambda=1,metric=['auc'], random_state=10,n_jobs=-1)
        lgbm.fit(trainX[i],trainY[i],eval_set=[(testX[i],testY[i])],early_stopping_rounds=50,eval_metric='auc',
                 categorical_feature=cat_features)
        print(lgbm.evals_result_)
        pred = lgbm.predict_proba(predict,num_iteration=lgbm.best_iteration_)[:,1]
        pred_lgbms.append(pred)

    # catboost模型
    pred_cats = []
    for i in range(5):

        cat = CatBoostClassifier(learning_rate=0.02, iterations=5000, eval_metric='AUC', od_wait=50,
                                 od_type='Iter', random_state=10, thread_count=8, l2_leaf_reg=1)
        cat.fit(trainX[i], trainY[i], eval_set=[(testX[i], testY[i])], early_stopping_rounds=50,
                use_best_model=True,cat_features=cat_features)
        print(cat.evals_result_)
        pred = cat.predict_proba(predict, ntree_end=cat.best_iteration_)[:, 1]
        pred_cats.append(pred)

    # xgboost模型
    pred_xgbs = []
    pred_result = predict[['merchant_id','user_id']]
    for i in range(5):

        xgb = XGBClassifier(n_estimators=2000, max_depth=5, learning_rate=0.025, 
                          eval_metric='auc', reg_lambda=1, random_state=10, n_jobs=8)
        xgb.fit(train_x,trainY[i],eval_set=[(test_x,testY[i])],early_stopping_rounds=50,eval_metric='auc')
        print(xgb.evals_result_)
        pred = xgb.predict_proba(predict_x, ntree_limit = xgb.best_iteration)[:,1]
        pred_xgbs.append(pred)

    def sigmoid_ver(x):
        return np.log(x/(1-x))
    def sigmoid(x):
        return 1/(1 + np.e**(-x))

    pred_t = np.zeros(len(predict))

    for i in range(5):
        pred_t += (sigmoid_ver(pred_lgbms[i]) + sigmoid_ver(pred_cats[i]) + sigmoid_ver(pred_xgbs[i]))

    result = sigmoid(pred_t/15)
    pred_result['prob'] = result
    pred_result[['user_id','merchant_id','prob']].to_csv('submission result.csv',sep=',', index=False)
目录
相关文章
|
2天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
91 55
|
12天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
82 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
21天前
|
人工智能 JSON 算法
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
阿里云的人工智能平台 PAI,作为一站式、 AI Native 的大模型与 AIGC 工程平台,为开发者和企业客户提供了 Qwen2.5-Coder 系列模型的全链路最佳实践。本文以Qwen2.5-Coder-32B为例,详细介绍在 PAI-QuickStart 完成 Qwen2.5-Coder 的训练、评测和快速部署。
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
|
9天前
|
机器学习/深度学习 缓存 人工智能
【AI系统】QNNPack 算法
QNNPACK是Marat Dukhan开发的量化神经网络计算加速库,专为移动端优化,性能卓越。本文介绍QNNPACK的实现,包括间接卷积算法、内存重排和间接缓冲区等关键技术,有效解决了传统Im2Col+GEMM方法存在的空间消耗大、缓存效率低等问题,显著提升了量化神经网络的计算效率。
23 6
【AI系统】QNNPack 算法
|
10天前
|
存储 人工智能 缓存
【AI系统】Im2Col 算法
Caffe 作为早期的 AI 框架,采用 Im2Col 方法优化卷积计算。Im2Col 将卷积操作转换为矩阵乘法,通过将输入数据重排为连续内存中的矩阵,减少内存访问次数,提高计算效率。该方法首先将输入图像转换为矩阵,然后利用 GEMM 库加速计算,最后将结果转换回原格式。这种方式显著提升了卷积计算的速度,尤其适用于通道数较多的卷积层。
22 5
【AI系统】Im2Col 算法
|
9天前
|
存储 机器学习/深度学习 人工智能
【AI系统】Winograd 算法
本文详细介绍Winograd优化算法,该算法通过增加加法操作来减少乘法操作,从而加速卷积计算。文章首先回顾Im2Col技术和空间组合优化,然后深入讲解Winograd算法原理及其在一维和二维卷积中的应用,最后讨论算法的局限性和实现步骤。Winograd算法在特定卷积参数下表现优异,但其应用范围受限。
20 2
【AI系统】Winograd 算法
|
5天前
|
编解码 机器人 测试技术
技术实践 | 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型快速搭建专业领域知识问答机器人
Qwen2-VL是一款具备高级图像和视频理解能力的多模态模型,支持多种语言,适用于多模态应用开发。通过PAI和LLaMA Factory框架,用户可以轻松微调Qwen2-VL模型,快速构建文旅领域的知识问答机器人。本教程详细介绍了从模型部署、微调到对话测试的全过程,帮助开发者高效实现定制化多模态应用。
|
14天前
|
机器学习/深度学习 人工智能 算法
人工智能浪潮下的编程实践:构建你的第一个机器学习模型
在人工智能的巨浪中,每个人都有机会成为弄潮儿。本文将带你一探究竟,从零基础开始,用最易懂的语言和步骤,教你如何构建属于自己的第一个机器学习模型。不需要复杂的数学公式,也不必担心编程难题,只需跟随我们的步伐,一起探索这个充满魔力的AI世界。
33 12
|
14天前
|
算法 5G 数据安全/隐私保护
基于MIMO系统的PE-AltMin混合预编码算法matlab性能仿真
本文介绍了基于交替最小化(AltMin)算法的混合预编码技术在MIMO系统中的应用。通过Matlab 2022a仿真,展示了该算法在不同信噪比下的性能表现。核心程序实现了对预编码器和组合器的优化,有效降低了硬件复杂度,同时保持了接近全数字预编码的性能。仿真结果表明,该方法具有良好的鲁棒性和收敛性。
31 8
|
14天前
|
存储 人工智能 缓存
【AI系统】布局转换原理与算法
数据布局转换技术通过优化内存中数据的排布,提升程序执行效率,特别是对于缓存性能的影响显著。本文介绍了数据在内存中的排布方式,包括内存对齐、大小端存储等概念,并详细探讨了张量数据在内存中的排布,如行优先与列优先排布,以及在深度学习中常见的NCHW与NHWC两种数据布局方式。这些布局方式的选择直接影响到程序的性能,尤其是在GPU和CPU上的表现。此外,还讨论了连续与非连续张量的概念及其对性能的影响。
36 3