数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二、特征选择
2.1 过滤式特征选取
2.1.1 VarianceThreshold
VarianceThreshold
用于剔除方差很小的特征,其原型为:xxxxxxxxxx
class sklearn.feature_selection.VarianceThreshold(threshold=0.0)threshold
:一个浮点数,指定方差的阈值。低于此阈值的特征将被剔除。
属性:
variances_
:一个数组,元素分别是各特征的方差。
方法:
fit(X[, y])
:从样本数据中学习每个特征的方差。transform(X)
:执行特征选择,即删除低于指定阈值的特征。fit_transform(X[, y])
:从样本数据中学习每个特征的方差,然后执行特征选择。get_support([indices])
:返回保留的特征。- 如果
indices=True
,则返回被选出的特征的索引。 - 如果
indices=False
,则返回一个布尔值组成的数组,该数组指示哪些特征被选择。
- 如果
inverse_transform(X)
:根据被选出来的特征还原原始数据(特征选取的逆操作),但是对于被删除的特征的值全部用 0 代替。
2.1.2 SelectKBest
SelectKBest
用于保留统计得分最高的 $ MathJax-Element-13 $ 个特征,其原型为:xxxxxxxxxx
class sklearn.feature_selection.SelectKBest(score_func=<function f_classif>, k=10)score_func
:一个函数,用于给出统计指标。该函数的参数为
(X,y)
,返回值为(scores,pvalues)
。X
:样本集合。通常是一个numpy array
,每行代表一个样本,每列代表一个特征。y
:样本的标签集合。它与X
的每一行相对应。scores
:样本的得分集合。它与X
的每一行相对应。pvalues
:样本得分的p
值。它与X
的每一行相对应。
k
:一个整数或者字符串'all'
,指定要保留最佳的几个特征。如果为
'all'
,则保留所有的特征。
sklearn
提供的常用的统计指标函数为:sklearn.feature_selection.f_regression
:基于线性回归分析来计算统计指标,适用于回归问题。sklearn.feature_selection.chi2
:计算卡方统计量,适用于分类问题。sklearn.feature_selection.f_classif
:根据方差分析Analysis of variance:ANOVA
的原理,依靠F-分布
为机率分布的依据,利用平方和与自由度所计算的组间与组内均方估计出F
值。适用于分类问题 。
属性:
scores_
:一个数组,给出了所有特征的得分。pvalues_
:一个数组,给出了所有特征得分的p-values
。
方法:参考
VarianceThreshold
。
2.1.3 SelectPercentile
SelectPercentile
用于保留统计得分最高的 $ MathJax-Element-10 $ 比例的特征,其原型为:xxxxxxxxxx
class sklearn.feature_selection.SelectPercentile(score_func=<function f_classif>, percentile=10)score_func
:一个函数,用于给出统计指标。参考SelectKBest
。percentile
:一个整数,指定要保留最佳的百分之几的特征,如10
表示保留最佳的百分之十的特征
属性:参考
SelectKBest
。方法:参考
VarianceThreshold
。
2.2 包裹式特征选取
2.2.1 RFE
RFE
类用于实现包裹式特征选取,其原型为:xxxxxxxxxx
class sklearn.feature_selection.RFE(estimator, n_features_to_select=None,step=1,verbose=0)estimator
:一个学习器,它必须提供一个.fit
方法和一个.coef_
特征。其中.coef_
特征中存放的是学习到的各特征的权重系数。通常使用
SVM
和广义线性模型作为estimator
参数。n_features_to_select
:一个整数或者None
,指定要选出几个特征。如果为
None
,则默认选取一半的特征。step
:一个整数或者浮点数,指定每次迭代要剔除权重最小的几个特征。- 如果大于等于1,则作为整数,指定每次迭代要剔除特征的数量。
- 如果在
0.0~1.0
之间,则指定每次迭代要剔除特征的比例。
verbose
:一个整数,控制输出日志。
RFE
要求学习器能够学习特征的权重(如线性模型),其原理为:- 首先学习器在初始的特征集合上训练。
- 然后学习器学得每个特征的权重,剔除当前权重一批特征,构成新的训练集。
- 再将学习器在新的训练集上训练,直到剩下的特征的数量满足条件。
属性:
n_features_
:一个整数,给出了被选出的特征的数量。support_
:一个数组,给出了特征是否被选择的mask
。ranking_
:特征权重排名。原始第i
个特征的排名为raning_[i]
。estimator_
: 外部提供的学习器 。
方法:
fit(X,y)
:训练RFE
模型transform(X)
:执行特征选择。fit_transform(X,y)
:从样本数据中学习RFE
模型,然后执行特征选择。get_support([indices])
:返回保留的特征。- 如果
indices=True
,则返回被选出的特征的索引。 - 如果
indices=False
,则返回一个布尔值组成的数组,该数组指示哪些特征被选择。
- 如果
inverse_transform(X)
:根据被选出来的特征还原原始数据(特征选取的逆操作),但是对于被删除的特征值全部用 0 代替。predict(X)/predict_log_proba(X) /predict_proba(X)
:将X
进行特征选择之后,在使用内部的estimator
来预测。score(X, y)
:将X
进行特征选择之后,训练内部estimator
并对内部的estimator
进行评分。
2.2.2 RFECV
RFECV
是RFE
的一个变体,它执行一个交叉验证来寻找最优的剩余特征数量,因此不需要指定保留多少个特征。RFECV
的原型为:xxxxxxxxxx
class sklearn.feature_selection.RFECV(estimator, step=1, cv=None, scoring=None,verbose=0)cv
:一个整数,或者交叉验证生成器或者一个可迭代对象,它决定了交叉验证策略。- 如果为
None
,则使用默认的3
折交叉验证。 - 如果为整数 $ MathJax-Element-13 $ ,则使用 $ MathJax-Element-13 $ 折交叉验证。
- 如果为交叉验证生成器,则直接使用该对象。
- 如果为可迭代对象,则使用该可迭代对象迭代生成
训练-测试
集合。
- 如果为
其它参数参考
RFE
。
属性:
grid_scores_
:一个数组,给出了交叉验证的预测性能得分。其元素为每个特征子集上执行交叉验证后的预测得分。- 其它属性参考
RFE
。
方法:参考
RFE
。
2.3 嵌入式特征选择
SelectFromModel
用于实现嵌入式特征选取,其原型为:xxxxxxxxxx
class sklearn.feature_selection.SelectFromModel(estimator, threshold=None, prefit=False)estimator
:一个学习器,它可以是未训练的(prefit=False
),或者是已经训练好的(prefit=True
)。estimator
必须有coef_
或者feature_importances_
属性,给出每个特征的重要性。当某个特征的重要性低于某个阈值时,该特征将被移除。threshold
:一个字符串或者浮点数或者None
,指定特征重要性的一个阈值。低于此阈值的特征将被剔除。如果为浮点数,则指定阈值的绝对大小。
如果为字符串,可以是:
'mean'
:阈值为特征重要性的均值。'median'
:阈值为特征重要性的中值。- 如果是
'1.5*mean'
,则表示阈值为 1.5 倍的特征重要性的均值。
如果为
None
:- 如果
estimator
有一个penalty
参数,且该参数设置为'l1'
,则阈值默认为1e-5
。 - 其他情况下,阈值默认为
'mean'
。
- 如果
prefit
:一个布尔值,指定estimator
是否已经训练好了。如果
prefit=False
,则estimator
是未训练的。
属性:
threshold_
:一个浮点数,存储了用于特征选取重要性的阈值。
方法:
fit(X,y)
:训练SelectFromModel
模型。transform(X)
:执行特征选择。fit_transform(X,y)
:从样本数据中学习SelectFromModel
模型,然后执行特征选择。get_support([indices])
:返回保留的特征。- 如果
indices=True
,则返回被选出的特征的索引。 - 如果
indices=False
,则返回一个布尔值组成的数组,该数组指示哪些特征被选择。
- 如果
inverse_transform(X)
:根据被选出来的特征还原原始数据(特征选取的逆操作),但是对于被删除的特征值全部用 0 代替。partial_fit(X[, y])
:通过部分数据来学习SelectFromModel
模型。它支持批量学习,这样对于内存更友好。即训练数据并不是一次性学习,而是分批学习。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论