机器学习——Logistic回归

一、线性模型与回归

1、   线性模型一般形式:  f ( x )= w1x1+w2x2+...+wdxd + b

        其中x=(x1, x2, ..., xd)是由d维属性描述的样本,其中 xi 是 x 在第 i 个属性上的取值。

        向量形式可记为:          

                                 f ( x )= wT x + b

        其中w=(w1, w2, ..., wd)为待求解系数

2、   给定数据集 D={(x1, y1), (x2, y2), ..., (xm, ym)}

        其中xi=(xi1, xi2, ..., xid), yi R 线性回归(linear regression)

        目的: 学习一个线性模型以尽可能准确地预测实值输出标记:                                

                                                        f(x)=wxi+b    

        使得                        

3、离散属性处理:

例:身高:{高,矮},性别:{男,女},瓜类:{西瓜,南瓜,黄瓜}

有“序”关系:转化为连续值:

        例如:身高->[0, 1]

无“序”关系:有k个属性值,则转换为k维向量:

        例如:瓜类->{(0,0,1),(0,1,0),(1,0,0)}

二、最小二乘与参数求解

        是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。

          目标:

三、对数线性回归

        如何通过线性模型预测非线性复杂的函数呢?

        对数线性回归是一种变换后的线性回归模型,它适用于当因变量与自变量之间的关系更接近于指数关系而非线性关系时。在这种情况下,可以通过对因变量、自变量或两者同时取对数来线性化这种关系,从而使得线性模型能够适用。

        如下:

                        

                      

四、Logistic回归

1、概念: 

       Logistic回归是一种广泛使用的分类算法,尤其适合于二分类问题。它的目标是找到一个可以用来预测目标类别概率的模型。与线性回归不同,Logistic回归预测的是一个概率值,而不是一个连续数值。

2、模型:

        Logistic回归模型的基本形式是:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

3、参数估计:

        Logistic回归模型的参数估计通常使用最大似然估计(MLE)。最大似然估计是一种统计方法,通过最大化似然函数来寻找参数的最佳估计值。在Logistic回归中,似然函数表示为所有观测数据发生的概率的乘积,参数估计就是找到使这个概率最大的参数值。、

4、代码例子:

        以下是一个经典的鸢尾花数据集,该数据集包含了150个样本,分为两个类别,每个类别50个样本。每个样本有两个特征:花瓣长度和花瓣宽度。

import numpy as np
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data[:, 2:4]  # 只取花瓣长度和宽度作为特征
y = iris.target

# 使用两个类别
X = X[y != 2]
y = y[y != 2]

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建Logistic回归模型
log_reg = LogisticRegression()

# 训练模型
log_reg.fit(X_train, y_train)

# 进行预测
y_pred = log_reg.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")

# 打印模型参数
print("Model coefficients:", log_reg.coef_)
print("Model intercept:", log_reg.intercept_)

在环境中的运行结果:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

五、总结与注意事项
        1、Logistic回归假设特征和log-odds线性相关,这可能不适用于所有问题。
        2、它是一个参数模型,可能会受到过拟合的影响,特别是当数据集小或特征非常多时。
        3、Logistic回归对于特征间的多重共线性比较敏感,可能需要事先进行特征选择或正则化处理。
        4、它通常要求特征变量是独立的,这意味着特征之间没有太强的相关性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值