python逻辑回归多项式参数_基于R和Python 如何使用多项式和有序逻辑回归

本文介绍了多元逻辑回归(MLR)和有序逻辑回归(OLR)的概念,以及如何在R和Python中实现这两种回归分析。通过案例分析展示了在高中程序选择和研究生申请决定场景下,如何利用这两种回归模型进行预测。文中详细解释了模型的系数、P值和概率,并探讨了模型的改进方法。

format,png

多元回归是什么?

多远回归是一种线性回归分析,因变量是名义上的两个或两个以上的水平。它用来描述数据,并解释一个依赖名义变量和一个或多个联系水平(时间间隔或比例规模)的独立变量之间的关系。你可以理解的名义变量,一个没有内在顺序的变量。

例如:森林类型:”常绿阔叶林””落叶林”,”雨林”。正如你看到的,他们之间有一个内在的秩序,但是每一类都代表一个独特的分类。换句话说,多项式回归是回归分析逻辑的延伸,分析了独立二进制。

多元回归是如何运作的?

多元逻辑回归评估了每个虚拟变量的二元逻辑回归模型。其结果是M-1二元逻辑回归模型。每一个模型都传达了,在比较参考的类别中,该类别成功概率的影响。

每个模型都有自身的截距和回归系数——预测可以影响每个不同类别。让我们将这一部分与我们的经典之作进行比较——线性和逻辑回归。

标准的线性回归需要变量成为连续水平(时间间隔或比率)的规模。然而,逻辑回归通过假设变量是一个随机事件,跳跃了差距。因变量描述该随机事件与密度函数的结果(一个累积概率从0到1的功能)。

统计人员认为,一个事件的概率小于0.5时则会发生,概率大于0.5时则是相反的情况。

现在我们知道MLR延伸了二元逻辑模型给一个众多类别的模型(因变量)。然而,它有一个限制。这个属于结果的类别并不假设任何顺序。例如,如果我们有N个有相等概率的类别。在现实中,我们遇到了一个自然顺序的类别的问题。

那么,当我们的因变量有一个自然顺序的类别时,我们该做什么?这种情况下,有序回归可以拯救我们。

有序回归是什么?

有序回归(也称序逻辑回归)是二项逻辑回归的又一延伸。 有序回归是用来预测变量与”有序”多个类别和独立变量。换句话说,它是用来促进一个或多个独立变量的相互作用的依赖变量(具有多个有序的水平)。

例如:让我们假设一项已经完成的调查。我们问了调查者一个在同意与不同意之间的问题。回馈的收集并没有帮助我们很好的概括。后来,我们增加了我们的反应机制例如:非常不同意,不同意,同意,非常不同意。

这有助于我们观察自然秩序的种类。因为我们的回归模型是现实的,我们必须感谢这个顺序不是生来就有的,正如MLR的情况,有序逻辑回归解决了这种情况。有序意味着类别的顺序。

实例:

在我们演算这些算法之前,让我们确保我们已经获得了一个具体的理解,使用下面的案例:

案例1:(多项式回归)

高中生可以用多项式LOGIT模型完成程序建模选择。程序选择可以是一般程序,职业程序和学术程序。他们的选择可以用他们的写作成绩和他们的社会经济地位来建模。

基于各种属性,如社会地位,渠道类型,学生所得到的奖项和荣誉,性别,经济地位以及他们在一个给定的题目中他们能够写的或者读的有多好,程序类型的选择可以预测。多层次

### 实现逻辑回归多项式拟合 为了在 Python 中实现逻辑回归多项式拟合,可以利用 `scikit-learn` 库中的工具完成这一过程。以下是详细的说明以及完整的代码示例。 #### 工具介绍 1. **PolynomialFeatures**: 这一模块用于将原始特征转换为更高阶的多项式特征[^2]。 2. **LogisticRegression**: 提供了线性逻辑回归的功能,当输入经过多项式变换后,它可以处理非线性分布的数据[^1]。 3. **Pipeline**: 可选地使用管道化操作简化流程,集成多个预处理步骤模型训练步骤[^3]。 #### 示例代码 以下是一个完整的代码示例,展示如何通过 `PolynomialFeatures` `LogisticRegression` 来实现逻辑回归多项式拟合: ```python from sklearn.preprocessing import PolynomialFeatures, StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split import numpy as np # 假设这是我们的数据集 np.random.seed(0) X = np.sort(np.random.rand(100, 1), axis=0) * 10 y = (X > 5).astype(int).ravel() # 多项式特征转换 poly_reg = PolynomialFeatures(degree=5) # 设置多项式的次数为5 X_poly = poly_reg.fit_transform(X) # 标准化处理(可选项) scaler = StandardScaler() X_poly_scaled = scaler.fit_transform(X_poly) # 训练逻辑回归模型 logistic = LogisticRegression(max_iter=10000) logistic.fit(X_poly_scaled, y) # 输出模型得分 score = logistic.score(X_poly_scaled, y) print(f"Model Accuracy: {score:.4f}") # 查看新特征的名字(可选) feature_names = poly_reg.get_feature_names_out(input_features=["x"]) print("Feature Names:", feature_names) ``` #### 解析 上述代码实现了以下几个功能: 1. 使用 `PolynomialFeatures` 将原始特征转化为五次多项式形式。 2. 对转化后的特征应用标准化处理以提高模型性能。 3. 利用 `LogisticRegression` 模型对多维特征进行分类任务,并计算其准确性分数。 4. 调用了 `get_feature_names_out()` 方法获取生成的新特征名称,便于后续分析与解释。 #### 注意事项 - 如果数据规模较大或者多项式次数较高,则可能会导致过拟合现象发生。此时可通过正则化方法缓解该问题。 - 特征工程阶段非常重要,在实际项目中应仔细调整多项式的度数以及其他超参数设置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值