【算法比赛】主流机器学习/深度学习模型代码模板

这篇博客分享了算法比赛中常用的机器学习和深度学习模型代码,包括Logistic Regression, LightGBM, XGBoost以及Keras的二分类和多分类应用。还针对正负样本不均衡的问题提供了调整样本比例、过采样、欠采样等解决方案,并推荐了相关框架imbalanced-learn。" 86578003,8025395,MT6750芯片详解与开发资源分享,"['联发科芯片', 'MT6750数据表', 'MT6750规格书', '手机芯片', '处理器技术']
摘要由CSDN通过智能技术生成

摘要

最近又开始混乱且忙碌的科研学习,双十一过后,钱包空了,就再不想买买买了,打比赛的议程又提上来了,首先给大家分享两个非常非常非常好的repo,昨天晚上才发现的,又请教了一个博士点经验,踏踏实实准备,浮躁的心就能沉淀下来~

更新最新最全的算法比赛信息:https://github.com/iphysresearch/DataSciComp
各种比赛的top解决方案:https://github.com/Smilexuhc/Data-Competition-TopSolution

一定要多交流多交流,算法岗没有想想的这么难的!
这个就相当于作文模板,稍微改改就能拿来使用啦~

Preprocess

# 通用的预处理框架

import pandas as pd
import numpy as np
import scipy as sp

# 文件读取
def read_csv_file(f, logging=False):
    print("==========读取数据=========")
    data =  pd.read_csv(f)
    if logging:
        print(data.head(5))
        print(f, "包含以下列")
        print(data.columns.values)
        print(data.describe())
        print(data.info())
    return data

Logistic Regression

# 通用的LogisticRegression框架

import pandas as pd
import numpy as np
from scipy import sparse
from sklearn.preprocessing import OneHotEncoder
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler

# 1. load data
df_train = pd.DataFrame()
df_test  = pd.DataFrame()
y_train = df_train['label'].values

# 2. process data
ss = StandardScaler()


# 3. feature engineering/encoding
# 3.1 For Labeled Feature
enc = OneHotEncoder()
feats = ["creativeID", "adID", "campaignID"]
for i, feat in enumerate(feats):
    x_train = enc.fit_transform(df_train[feat].values.reshape(-1, 1))
    x_test = enc.fit_transform(df_test[feat].values.reshape(-1, 1))
    if i == 0:
        X_train, X_test = x_train, x_test
    else:
        X_train, X_test = sparse.hstack((X_train, x_train)), sparse.hstack((X_test, x_test))

# 3.2 For Numerical Feature
# It must be a 2-D Data for StandardScalar, otherwise reshape(-1, len(feats)) is required
feats = ["price", "age"]
x_train = ss.fit_transform(df_train[feats].values)
x_test  = ss.fit_transform(df_test[feats].values)
X_train, X_test = sparse.hstack((X_train, x_train)), sparse.hstack((X_test, x_test))

# model training
lr = LogisticRegression()
lr.fit(X_train, y_train)
proba_test = lr.predict_proba(X_test)[:, 1]

LightGBM

1. 二分类

import lightgbm as lgb
import pandas as pd
import numpy as np
import pickle
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split

print("Loading Data ... ")

# 导入数据
train_x, train_y, test_x = load_data()

# 用sklearn.cross_validation进行训练数据集划分,这里训练集和交叉验证集比例为7:3,可以自己根据需要设置
X, val_X, y, val_y = train_test_split(
    train_x,
    train_y,
    test_size=0.05,
    random_state=1,
    stratify=train_y ## 这里保证分割后y的比例分布与原数据一致
)

X_train = X
y_train = y
X_test = val_X
y_test = val_y


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值