Python机器学习--算法实现--常用算法在Sklearn中的回归算法关键参数详解

2023-11-12

常用算法在Sklearn中的关键参数详解

回归算法

线性回归算法

from sklearn.linear_model import LinearRegression

LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1)
 
'''
参数含义:
1.fit_intercept:布尔值,指定是否需要计算线性回归中的截距,即b值。如果为False,
那么不计算b值。
2.normalize:布尔值。如果为False,那么训练样本会进行归一化处理。
3.copy_X:布尔值。如果为True,会复制一份训练数据。
4.n_jobs:一个整数。任务并行时指定的CPU数量。如果取值为-1则使用所有可用的CPU。

属性
1.coef_:权重向量
2.intercept_:截距b值

方法:
1.fit(X,y):训练模型。
2.predict(X):用训练好的模型进行预测,并返回预测值。
3.score(X,y):返回预测性能的得分。计算公式为:score=(1 - u/v)
其中u=((y_true - y_pred) ** 2).sum(),v=((y_true - y_true.mean()) ** 2).sum()
score最大值是1,但有可能是负值(预测效果太差)。score越大,预测性能越好。
'''

KNN回归算法

from sklearn.neighbors import KNeighborsRegressor

KNeighborsRegressor(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, 
					metric='minkowski', metric_params=None, n_jobs=1, **kwargs)

'''
参数: 
1.n_neighbors: 一个整数,指定k值。
2.weights: 一字符串或者可调用对象,指定投票权重类型。即这些邻居投票权可以为相同或者不同。 
   uniform: 本节点的所有邻居节点的投票权重都相等。
   distance: 本节点的所有邻居节点的投票权重与距离成反比,即越近节点,其投票权重越大。
   [callable]: 一个可调用对象,它传入距离的数组,返回同样形状的权重数组。
3.algorithm: 一个字符串,指定最近邻的算法,可以为下: 
   ball_tree: 使用BallTree算法。
   kd_tree: 使用KDTree算法。
   brute: 使用暴力搜索算法。
   auto: 自动决定最合适算法。
4.leaf_size: 一个整数,指定BallTree或者KDTree叶节点的规模。它影响树的构建和查询速度。
5.metric: 一个字符串,指定距离度量。默认为‘minkowski’(闵可夫斯基)距离。
6.p: 整数值。 
   p=1: 对应曼哈顿距离。
   p=2: 对应欧氏距离。
7.n_jobs: 并行性。默认为-1表示派发任务到所有计算机的CPU上。

方法: 
1.fit(X,y): 训练模型。
2.predict(X): 预测模型。
3.score(X,y): 返回在(X,y)上预测的准确率(accuracy)。
4.predict_proba(X): 返回样本为每种标记的概率。
5.kneighbors([X,n_neighbors,return_distace]): 返回样本点的k邻近点。
  如果return_distance=True,同时还返回到这些近邻点的距离。
6.kneighbors_graph([X,n_neighbors,mode]): 返回样本点的连接图。
'''

决策树(回归树)

from sklearn.tree import DecisionTreeRegressor

DecisionTreeRegressor(criterion='mse', splitter='best', max_depth=None, min_samples_split=2, 
					  min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, 		
					  random_state=None, max_leaf_nodes=None, min_impurity_split=1e-07, presort=False)

'''
参数: 
1.criterion : 一个字符串,指定切分质量的评价标准。默认为‘mse’,且只支持该字符串,表示均方误差。
2.splitter : 一个字符串,指定切分原则,可以为: 
   best : 表示选择最优的切分。
   random : 表示随机切分。
3.max_features : 可以为整数、浮点、字符或者None,指定寻找best split时考虑的特征数量。 
   如果是整数,则每次切分只考虑max_features个特征。
   如果是浮点数,则每次切分只考虑max_features*n_features个特征(max_features指定了百分比)。
   如果是字符串‘auto’,则max_features等于n_features。
   如果是字符串‘sqrt’,则max_features等于sqrt(n_features)。
   如果是字符串‘log2’,则max_features等于log2(n_features)。
   如果是字符串None,则max_features等于n_features。
4.max_depth : 可以为整数或者None,指定树的最大深度。 
  如果为None,表示树的深度不限(知道每个叶子都是纯的,即叶子结点中的所有样本点都属于一个类,
  或者叶子中包含小于min_sanples_split个样本点)。
如果max_leaf_nodes参数非None,则忽略此项。
5.min_samples_split : 为整数,指定每个内部节点(非叶子节点)包含的最少的样本数。
6.min_samples_leaf : 为整数,指定每个叶子结点包含的最少的样本数。
7.min_weight_fraction_leaf : 为浮点数,叶子节点中样本的最小权重系数。
8.max_leaf_nodes : 为整数或None,指定叶子结点的最大数量。 
   如果为None,此时叶子节点数不限。
   如果非None,则max_depth被忽略。
9.class_weight : 一个字典、字典的列表、字符串‘balanced’或者None,它指定了分类的权重。
  权重形式为:{class_label:weight} 如果为None,则每个分类权重都为1.
  字符串‘balanced’表示每个分类的权重是各分类在样本出现的频率的反比。
10.random_state : 一个整数或者一个RandomState实例,或者None。 
   如果为整数,则它指定了随机数生成器的种子。
   如果为RandomState实例,则指定了随机数生成器。
   如果为None,则使用默认的随机数生成器。
11.presort : 一个布尔值,指定了是否要提前排序数据从而加速寻找最优切分的过程。
  设置为True时,对于大数据集会减慢总体训练过程,但对于小数据集或者设定了最大深度的情况下,则会加速训练过程。

属性: 
1.feature_importances_ : 给出了特征的重要程度。该值越高,则特征越重要(也称为Gini importance)。
2.max_features_ : max_feature的推断值。
3.n_features_ : 当执行fit后,特征的数量。
4.n_outputs_ : 当执行fit后,输出的数量。
5.tree_ : 一个Tree对象,即底层的决策树。

方法: 
1.fit(X,y) : 训练模型。
2.predict(X) : 用模型预测,返回预测值。
3.score(X,y) : 返回性能得分
'''

随机森林(回归森林)

from sklearn.ensemble import RandomForestRegressor

RandomForestRegressor(n_estimators='warn', criterion='mse', max_depth=None, min_samples_split=2,
					  min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', 
					  max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, 
					  bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, 
					  warm_start=False)

'''
参数:
1.n_estimators :一个整数,指定基础决策树的数量(默认为10).
2.criterion:字符串。指定分裂的标准,默认为sse
3.max_depth:一个整数或者None,指定每一个基础决策树模型的最大深度。如果      
  max_leaf_nodes不是None,则忽略此参数。
4.min_samples_split:一个整数,指定了每个基础决策树模型分裂所需最小样本数。
5.min_samples_leaf:一个整数,指定了每个基础决策树模型叶节点所包含的最小样本数。
6.min_weight_fraction_leaf:一个浮点数。叶节点的最小加权权重。当不提供
  sample_weight时,样本的权重是相等的。
7.max_features:一个整数,浮点数或者None。代表节点分裂是参与判断的最大特征数。
8.max_leaf_nodes:为整数或者None,指定了每个基础决策树模型的最大叶节点数量。
9.bootstrap:为布尔值。如果为True,则使用采样法bootstrap sampling来产生决策树的训练数据。
10.oob_score:为布尔值。如果为True,则使用包外样本来计算泛化误差。
11.n_jobs:一个整数,指定并行性。如果为-1,则表示将训练和预测任务派发到所有CPU上。
12.verbose:一个整数,如果为0则不输出日志,如果为1,则每隔一段时间输出日志,大于1输出日志会更频繁。
13.warm_start:布尔值。当为True是,则继续使用上一次训练结果。否则重新开始训练。
14.random_state:一个整数或者一个RandomState实例,或者None。 
  如果为整数,指定随机数生成器的种子。
  如果为RandomState,指定随机数生成器。
  如果为None,指定使用默认的随机数生成器。

属性 
1.estimators_:一个数组,存放所有训练过的决策树。
2.oob_prediction_:一个数组,训练数据使用包外估计时的预测值。
3.n_features_:一个整数,在训练时使用的特征数量。
4.n_outputs_:一个整数,在训练时输出的数量。
5.feature_importances_:一个数组,形状为[n_features]。如果base_estimator支持,
  则他给出每个特征的重要性。
6.oob_score_:一个浮点数,训练数据使用包外估计时的得分。

方法 
1.fit(X,y):训练模型。 
2.predict(X):用模型进行预测,返回预测值。
3.score(X,y):返回在(X,y)上预测的准确度。
'''

GBDT回归

from sklearn.ensemble import GradientBoostingRegressor

GradientBoostingRegressor(loss='ls', learning_rate=0.1, n_estimators=100, subsample=1.0, 
						  criterion='friedman_mse', min_samples_split=2, min_samples_leaf=1, 
						  min_weight_fraction_leaf=0.0, max_depth=3, min_impurity_decrease=0.0, 
						  min_impurity_split=None, init=None, random_state=None, max_features=None, 
						  alpha=0.9, verbose=0, max_leaf_nodes=None, warm_start=False, presort='auto', 
						  validation_fraction=0.1, n_iter_no_change=None, tol=0.0001)

'''
1.loss: 损失函数,‘ls’:此时损失函数为平方损失函数。 
- ‘lad’:此时使用指数绝对值损失函数。 
- ‘quantile’:分位数回归(分位数指的是百分之几),采用绝对值损失。 
- ‘huber’:此时损失函数为上述两者的综合,即误差较小时,采用平方损失,在误差较大时,采用绝对值损失。
2.learning_rate:学习率
3.n_ estimators: 基学习器的个数,这里是树的颗数
4.subsample: 取值在(0, 1)之间,取原始训练集中的一个子集用于训练基础决策树
5.criterion: 'friedman_mse'改进型的均方误差;'mse'标准的均方误差; 'mae'平均绝对误差。
6.min_samples_split:一个整数,指定了每个基础决策树模型分裂所需最小样本数。
7.min_samples_leaf:一个整数,指定了每个基础决策树模型叶节点所包含的最小样本数。
8.min_weight_fraction_leaf:一个浮点数。叶节点的最小加权权重。当不提供sample_weight时,样本的权重是相等的。
9.max_depth:一个整数或者None,指定每一个基础决策树模型的最大深度。如果max_leaf_noeds不是None,则忽略此参数。
10.max_features:一个整数,浮点数或者None。代表节点分裂是参与判断的最大特征数。整数为个数,浮点数为所占比重。
11.max_leaf_nodes:为整数或者None,指定了每个基础决策树模型的最大叶节点数量。
12.min_impurity_split:一个浮点数,指定在树生长的过程中,节点分裂的阈值,默认为1e-7。
13.init:一个基础分类器对象或者None
14.alpha:一个浮点数,只有当loss=‘huber’或者loss=‘quantile’时才有效。
15.verbose:如果为0则不输出日志,如果为1,则每隔一段时间输出日志
16.warm_start:热启动,当你训练GBM到一定程度停止时,如果你想在这个基础上接着训练,就需要用到该参数减少重复训练;

属性 
1.feature_importance_:一个数组,给出了每个特征的重要性(值越高重要性越大)。
2.oob_improvement_:一个数组,给出了每增加一棵基础决策树,在包外估计(即测试集)的损失函数的减少值。
3.train_score_:一个数组,给出每增加一棵基础决策树,在训练集上的损失函数的值。
4.loss:具体损失函数对象。
5.init:初始预测使用的分类器。
6.estimators_:一个数组,给出了每个基础决策树。

方法 
1.apply(X)	Apply trees in the ensemble to X, return leaf indices.
2.fit(X,y):训练模型。
3.get_params([deep])	Get parameters for this estimator.
4.predict(X):用模型进行预测,返回预测值。
5.score(X,y):返回在(X,y)上预测的准确率。
6.set_params(**params)	Set the parameters of this estimator.
7.staged_predict(X):返回一个数组,数组元素依次是每一轮迭代结束时尚未完成的集成分类器的预测值。
'''

XGBoost 回归

from xgboost import XGBRegressor

XGBRegressor(max_depth=3, learning_rate=0.1, n_estimators=100, silent=True, objective='reg:linear', 	
			 booster='gbtree', n_jobs=1, nthread=None, gamma=0, min_child_weight=1, max_delta_step=0, 
			 subsample=1, colsample_bytree=1, colsample_bylevel=1, reg_alpha=0, reg_lambda=1, 
			 scale_pos_weight=1, base_score=0.5, random_state=0, seed=None, missing=None, **kwargs)

'''
属性
1.feature_importances_  给出每个特征的重要性。

用法
1.apply(X[, ntree_limit])	Return the predicted leaf every tree for     
  each sample.
2.evals_result()	Return the evaluation results.
3.fit(X[, y])	Fit a gradient boosting classifier
4.get_booster()	Get the underlying xgboost Booster of this model.
5.get_params([deep])	Get parameters.
6.get_xgb_params()	Get xgboost type parameters.
7.predict(X)	Predict with data.
8.score(X, y[, sample_weight])	Returns the mean accuracy on the given 
  test data and labels.
9.set_params(**params)	Set the parameters of this estimator.
'''
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python机器学习--算法实现--常用算法在Sklearn中的回归算法关键参数详解 的相关文章

随机推荐

  • 如何选择一款趁手的光纤测试仪

    光纤测试仪是一种用于物理学 电子与通信技术领域的物理性能测试仪器 于1996年11月1日启用 常用光纤测试表有 光功率计 光万用表 稳定光源 光时域反射仪 OTDR 和光故障定位仪 如何选择合适的光纤测试仪 选择光纤测试仪表 一般需考虑以下
  • 虚拟化原理以及应用(8)课堂笔记-第三章KVM的概述第四章-课堂笔记-virt-manager默认方式创建虚拟机(1)

    一 KVM的概念 重点 KVM关键词 1 基于Linux内核的全虚拟化解决方案 运行在支持硬件虚拟化功能的X86平台 Intel VT 或AMD V 基于LINUX内核的全虚拟化的解决方案 运行在支持硬件虚拟化功能的x86平台 intel
  • RNN(循环神经网络)

    文章目录 RNN概述 RNN模型 RNN前向传播算法 RNN反向传播算法推导 RNN小结 DNN的特例CNN的模型和前向反向传播算法 这些算法都是前向反馈的 模型的输出和模型本身没有关联关系 今天我们就讨论另一类输出和模型间有反馈的神经网络
  • Vue.config.productionTip = false 是什麽意思

    阻止启动生产消息 常用作指令 阻止启动生产消息 這又是什麽意思 看下效果 Vue config productionTip false Vue config productionTip true 感覺多了一行信息
  • python3(二)Numpy

    这两个库都是基于C语言的 所以这两个库的计算速度相比python的list或dict来说很快 pandas又是基于numpy的库 相当于numpy的升级版本 并且用到了矩阵的计算 计算速度相比利用单个数据或字典 列表来说 快很多 1 基本
  • CAD+开发小结+交互+选择集+深度拷贝AcDbObjectId中指向的实体集+读取其他DWG文件

    深度拷贝将数组中的实体ID指向的实体拷贝至blockId为ID的块中 AcDbIdMapping adimIdMap AcApDocument pDoc acDocManager gt curDocument acDocManager gt
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本

    文章目录 一 集群规划及架构 二 系统初始化准备 所有节点同步操作 三 安装并配置cri dockerd插件 四 安装kubeadm 所有节点同步操作 五 初始化集群 六 Node节点添加到集群 七 安装网络组件Calico 八 测试Cor
  • sqli labs less 25

    按照常规输入id 1 提示报错信息如下 一个很常见的报错 可以看出是单引号闭合的语句 输入 id 1 or 1 报出的错误信息不明显 加入一个括号进行试探能不能报出更多的语句错误 输入 id 1 or 1 从上图看出来or 被屏蔽了 经过更
  • ubuntu搭建android编译环境

    本文来自linux与嵌入式技术Q群52240781 ubuntu12 04 14 04安装后搭建android编译环境 注安装的是64位ubuntu系统12 04或14 04 请安装ubuntu的LTS版即12 04或14 04 每2年发布
  • 87_BigDecimal的doubleValue()、toString()、toPlainString()与科学计数法

    主题 BigDecimal toPlainString 可以避免出现科学计数法格式的数据 项目上面有个小伙伴在用Bigdecimal进行数值计算时 用return num doubleValue 的方式将结果送到前台 测试数值较小时无问题
  • 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

    报错如下 检查npm目录下是否还有node exe文件如果没有复制过来 我复制过来问题解决 首先我是node和npm版本和项目版本不适应 需要更换版本 所以重新安装node js在重新安装的过程中将安装的位置改变了 所以造成了这个可能
  • DSS简介

    原文链接 去中心化软件服务 DSS 是一个基于CCR的轻量级 net运行时环境 DSS提供了一个轻量级的 状态导向的服务模型 它将REST概念和构造高性能高扩展性应用的系统级方法结合在一起 在DSS中服务被暴露为一种可以被程序和UI操作界面
  • 将 Tocmat5.0 注册为 Windows 的服务程序

    将 Tocmat5 0 注册为 Windows 的服务程序 步骤 1 下载 Tomcat 5 0 x 不要下载安装版本 2 解压到 TOMCAT HOME 3 安装或者从别处拷贝JRE 推荐拷贝 可以删除不需要的文件 如文档等 4 在 TO
  • Qt编译MySQL数据库驱动

    文章目录 一 我的编译环境 二 需要 三 Qt的下载 四 编译驱动 主题 4 1 第一步打开msql pro 4 2 第二步 4 3 第三步 4 4 第四步 4 5 第五步 编译 最后一步 一 我的编译环境 Qt 5 14 2 mingw7
  • 大模型时代,企业如何重构 AI 应用落地范式?

    近一年来 生成式人工智能 AIGC 技术的快速发展和各种大模型的涌现 引发了全球范围内对于通用人工智能 AGI 时代是否即将到来的讨论 在 AIGC 大模型公共服务逐渐被大众辩证地接受后 如何用 AIGC 技术重塑企业智能服务成为一个深水区
  • 使用Jmeter进行http接口做功能、性能测试

    使用Jmeter进行http接口做功能 性能测试 1 使用Jmeter进行http接口做功能 性能测试 在测试移动APP时 会有很多接口需要做测试 我在这里介绍一下对HTTP接口做功能 性能的测试 首先我们会从开发人员拿到接口数据 1 1
  • 苹果IOS开发者账号总结

    详细地址 https developer apple com programs which program 个人账号 Individual 费用99美金一年 该账号在App Store销售者只能显示个人的ID 比如zhitian zhang
  • Linux 查看进程消耗内存情况总结

    在Linux中 有很多命令或工具查看内存使用情况 今天我们来看看如何查看进程消耗 占用的内存情况 Linux的内存管理和相关概念要比Windows复杂一些 在此之前 我们需要了解一下Linux系统下面有关内存的专用名词和专业术语概念 物理内
  • LeetCode之最长公共子序列问题LCS解决方法

    Leetcode官网解答 使用动态规划原理 请参考原文地址 https leetcode cn com problems longest common subsequence solution zui chang gong gong zi
  • Python机器学习--算法实现--常用算法在Sklearn中的回归算法关键参数详解

    常用算法在Sklearn中的关键参数详解 回归算法 线性回归算法 from sklearn linear model import LinearRegression LinearRegression fit intercept True n