数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
一、线性模型
线性模型的一些通用参数:
fit_intercept
:一个布尔值,指定是否需要计算截距项。如果为False
,那么不会计算截距项。当 $ MathJax-Element-47 $ , $ MathJax-Element-48 $ 时, 可以设置
fit_intercept=False
。intercept_scaling
:一个浮点数,用于缩放截距项的正则化项的影响。当采用
fit_intercept
时,相当于人造一个特征出来,该特征恒为1
,其权重为 $ MathJax-Element-49 $ 。在计算正则化项的时候,该人造特征也被考虑了。为了降低这个人造特征的影响,需要提供
intercept_scaling
。tol
:一个浮点数,指定判断迭代收敛与否的阈值。
1.1 LinearRegression
LinearRegression
是线性回归模型,它的原型为:class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)
fit_intercept
:一个布尔值,指定是否需要计算截距项。normalize
:一个布尔值。如果为True
,那么训练样本会在训练之前会被归一化。copy_X
:一个布尔值。如果为True
,则会拷贝X
。n_jobs
:一个整数,指定计算并行度。
模型属性:
coef_
:权重向量。intercept_
: $ MathJax-Element-49 $ 值。
模型方法:
fit(X,y[,sample_weight])
:训练模型。predict(X)
:用模型进行预测,返回预测值。score(X,y[,sample_weight])
:返回模型的预测性能得分。
1.2 Ridge
Ridge
类实现了岭回归模型。其原型为:xxxxxxxxxx
class sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver='auto', random_state=None)alpha
: $ MathJax-Element-84 $ 值,用于缓解过拟合。max_iter
: 指定最大迭代次数。tol
:一个浮点数,指定判断迭代收敛与否的阈值。solver
:一个字符串,指定求解最优化问题的算法。可以为:'auto'
:根据数据集自动选择算法。'svd'
:使用奇异值分解来计算回归系数。'cholesky'
:使用scipy.linalg.solve
函数来求解。'sparse_cg'
:使用scipy.sparse.linalg.cg
函数来求解。'lsqr'
:使用scipy.sparse.linalg.lsqr
函数求解。它运算速度最快,但是可能老版本的
scipy
不支持。'sag'
:使用Stochastic Average Gradient descent
算法求解最优化问题。
random_state
:用于设定随机数生成器,它在solver=sag
时使用。其它参数参考
LinearRegression
。
模型属性:
coef_
:权重向量。intercept_
: $ MathJax-Element-49 $ 值。n_iter_
:实际迭代次数。
模型方法: 参考
LinearRegression
。下面的示例给出了不同的 $ MathJax-Element-84 $ 值对模型预测能力的影响。
当 $ MathJax-Element-84 $ 超过
1
之后,随着 $ MathJax-Element-84 $ 的增长,预测性能急剧下降。这是因为 $ MathJax-Element-84 $ 较大时,正则化项 $ MathJax-Element-24 $ 影响较大,模型趋向于简单。
极端情况下当 $ MathJax-Element-25 $ 时, $ MathJax-Element-26 $ 从而使得正则化项 $ MathJax-Element-27 $ ,此时的模型最简单。
但是预测预测性能非常差,因为对所有的未知样本,模型都预测为同一个常数 $ MathJax-Element-49 $ 。
1.3 Lasso
Lasso
类实现了Lasso
回归模型。其原型为:xxxxxxxxxx
lass sklearn.linear_model.Lasso(alpha=1.0, fit_intercept=True, normalize=False, precompute=False, copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, positive=False, random_state=None, selection='cyclic')alpha
: $ MathJax-Element-84 $ 值,用于缓解过拟合。precompute
:一个布尔值或者一个序列。是否提前计算Gram
矩阵来加速计算。warm_start
:是否从头开始训练。positive
:一个布尔值。如果为True
,那么强制要求权重向量的分量都为正数。selection
:一个字符串,可以为'cyclic'
或者'random'
。它指定了当每轮迭代的时候,选择权重向量的哪个分量来更新。'random'
:更新的时候,随机选择权重向量的一个分量来更新'cyclic'
:更新的时候,从前向后依次选择权重向量的一个分量来更新
其它参数参考
Ridge
。
模型属性:参考
Ridge
。模型方法: 参考
LinearRegression
。下面的示例给出了不同的 $ MathJax-Element-84 $ 值对模型预测能力的影响。
当 $ MathJax-Element-84 $ 超过
1
之后,随着 $ MathJax-Element-84 $ 的增长,预测性能急剧下降。原因同Ridge
中的分析。
1.4 ElasticNet
ElasticNet
类实现了ElasticNet
回归模型。其原型为:xxxxxxxxxx
class sklearn.linear_model.ElasticNet(alpha=1.0, l1_ratio=0.5, fit_intercept=True, normalize=False, precompute=False, max_iter=1000, copy_X=True, tol=0.0001, warm_start=False, positive=False, random_state=None, selection='cyclic')alpha
: $ MathJax-Element-84 $ 值 。l1_ratio
: $ MathJax-Element-38 $ 值 。- 其它参数参考
Lasso
。
模型属性:参考
Lasso
。模型方法:参考
Lasso
。下面的示例给出了不同的 $ MathJax-Element-84 $ 值和 $ MathJax-Element-38 $ 值对模型预测能力的影响。
随着 $ MathJax-Element-84 $ 的增大,预测性能下降。因为正则化项为:
$ \alpha \rho||\mathbf {\vec w}||_1+\frac{\alpha(1- \rho)}{2}||\mathbf {\vec w}||_2^{2}\quad ,\alpha \ge 0 ,1 \ge \rho \ge 0 $$ MathJax-Element-38 $ 影响的是性能下降的速度,因为这个参数控制着 $ MathJax-Element-39 $ 之间的比例 。
1.4 LogisticRegression
LogisticRegression
实现了对数几率回归模型。其原型为:xxxxxxxxxx
class sklearn.linear_model.LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='liblinear', max_iter=100, multi_class='ovr', verbose=0, warm_start=False, n_jobs=1)penalty
:一个字符串,指定了正则化策略。- 如果为
'l2'
, 则为 $ MathJax-Element-40 $ 正则化。 - 如果为
'l1'
,则为 $ MathJax-Element-41 $ 正则化。
- 如果为
dual
:一个布尔值。- 如果为
True
,则求解对偶形式(只在penalty='l2'
且solver='liblinear'
有对偶形式)。 - 如果为
False
,则求解原始形式。
- 如果为
C
:一个浮点数。它指定了罚项系数的倒数。如果它的值越小,则正则化项越大。class_weight
:一个字典或者字符串'balanced'
,指定每个类别的权重。- 如果为字典:则字典给出了每个分类的权重。如
{class_label: weight}
。 - 如果为字符串
'balanced'
:则每个分类的权重与该分类在样本集中出现的频率成反比。 - 如果未指定,则每个分类的权重都为
1
。
- 如果为字典:则字典给出了每个分类的权重。如
solver
:一个字符串,指定了求解最优化问题的算法。可以为下列的值:'newton-cg'
:使用牛顿法。'lbfgs'
:使用L-BFGS
拟牛顿法。'liblinear'
:使用liblinear
。'sag'
:使用Stochastic Average Gradient descent
算法。
注意:
- 对于规模小的数据集,
'liblinear'
比较适用;对于规模大的数据集,'sag'
比较适用。 'newton-cg'
、'lbfgs'
、'sag'
只处理penalty='l2'
的情况。
multi_class
:一个字符串,指定对于多分类问题的策略。可以为:'ovr'
:采用one-vs-rest
策略。'multinomial'
:直接采用多分类logistic
回归策略。
其它参数参考
ElasticNet
。
模型属性:参考
ElasticNet
。模型方法:
fit(X,y[,sample_weight])
:训练模型。predict(X)
:用模型进行预测,返回预测值。score(X,y[,sample_weight])
:返回模型的预测性能得分。predict_log_proba(X)
:返回一个数组,数组的元素依次是X
预测为各个类别的概率的对数值。predict_proba(X)
:返回一个数组,数组的元素依次是X
预测为各个类别的概率值。
下面的示例给出了不同的
C
值对模型预测能力的影响。C
是正则化项系数的倒数,它越小则正则化项的权重越大。随着
C
的增大(即正则化项的减小),LogisticRegression
的预测准确率上升。当
C
增大到一定程度(即正则化项减小到一定程度),LogisticRegression
的预测准确率维持在较高的水准保持不变。事实上,当
C
太大时,正则化项接近于0,此时容易发生过拟合,预测准确率会下降。
1.5 LinearDiscriminantAnalysis
类
LinearDiscriminantAnalysis
实现了线性判别分析模型。其原型为:xxxxxxxxxx
class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)solver
:一个字符串,指定求解最优化问题的算法。可以为:'svd'
:奇异值分解。对于有大规模特征的数据,推荐用这种算法。'lsqr'
:最小平方差算法,可以结合shrinkage
参数。'eigen'
:特征值分解算法,可以结合shrinkage
参数。
shrinkage
:字符串'auto'
或者浮点数或者None
。该参数只有在
solver='lsqr'
或者'eigen'
下才有意义。当矩阵求逆时,它会在对角线上增加一个小的数 $ MathJax-Element-44 $ ,防止矩阵为奇异的。其作用相当于正则化。- 字符串
'auto'
:根据Ledoit-Wolf
引理来自动决定 $ MathJax-Element-44 $ 的大小。 None
:不使用shrinkage
参数。- 一个
0
到1
之间的浮点数:指定 $ MathJax-Element-44 $ 的值。
- 字符串
priors
:一个数组,数组中的元素依次指定了每个类别的先验概率。如果为
None
则认为每个类的先验概率都是等可能的。n_components
:一个整数,指定了数据降维后的维度(该值必须小于n_classes-1)
。store_covariance
:一个布尔值。如果为True
,则需要额外计算每个类别的协方差矩阵 $ MathJax-Element-45 $ 。tol
:一个浮点值。它指定了用于SVD
算法中评判迭代收敛的阈值。
模型属性:
coef_
:权重向量。intercept_
: $ MathJax-Element-49 $ 值。covariance_
:一个数组,依次给出了每个类别的协方差矩阵。means_
:一个数组,依次给出了每个类别的均值向量。xbar_
:给出了整体样本的均值向量。n_iter_
:实际迭代次数。
模型方法: 参考
LogisticRegression
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论