小伙伴们,今天咱们要统统探索一个超等有效的统计建模器用——statsmodels库中的广义线性模子(GLM)。若是你对数据分析感敬爱,尤其是惩处二分类或多分类问题时,这个器用统统能成为你的牛逼助手。咱们将通过实例来学习怎么使用GLM模子分析这些数据,让复杂的统计办法变得简单易懂!
什么是广义线性模子(GLM)?
广义线性模子是线性纪念模子的延伸,它允许咱们惩处更多种类的数据散播和相接函数。简单来说,GLM不错让咱们对非线性关系、非正态散播的数据进行建模。比如,二分类问题中的逻辑纪念,即是GLM的一个特例。
装配statsmodels
在驱动之前,确保你依然装配了statsmodels库。若是莫得,不错通过pip装配:
1bash复制代码2 pip install statsmodels
分析二分类问题
数据准备率先,咱们需要一些数据来熟谙。假定咱们有一个对于用户是否购买居品的数据集,包含两个特征:年岁和收入,以及一个指标变量:是否购买(1示意购买,0示意未购买)。
1python复制代码 2 import pandas as pd 3 import numpy as np 4 5# 创建一个示例数据集 6 data = { 7 'age': [25, 45, 35, 50, 23, 34, 40, 52, 28, 37], 8 'income': [50000, 80000, 60000, 120000, 45000, 55000, 70000, 130000, 52000, 63000], 9 'purchased': [0, 1, 0, 1, 0, 0, 1, 1, 0, 1]10 }11 df = pd.DataFrame(data)
构建GLM模子
在statsmodels中,构建GLM模子相配简单。咱们需要指定模子公式、数据集以及使用的散播和相接函数。对于二分类问题,咱们频繁使用Binomial散播和logit相接函数(这即是逻辑纪念)。
1python复制代码 2 import statsmodels.api as sm 3 4# 添加常数项(截距) 5 df['intercept'] = 1.0 6 7# 指定模子公式:'purchased ~ age + income + intercept' 8 model = sm.GLM(df['purchased'], df[['intercept', 'age', 'income']], family=sm.families.Binomial()) 910# 拟合模子11 result = model.fit()12 print(result.summary())
运行截止会显现模子的详备信息,包括统统、设施误、z值、P值等。最蹙迫的是,咱们不错看到每个特征对指标变量的影响标的和大小。小贴士:intercept是咱们手动添加的常数项,用于模子中的截距。在statsmodels中,若是不添加这一项,模子将不会自动包含截距。阐述模子截止统统(coef):示意特征对指标变量(购买概率)的影响标的和大小。正数示意正接洽,负数示意负接洽。P值(P>|z|):用于熟谙特征是否权贵。频繁,P值小于0.05示意特征权贵。
分析多分类问题
多分类问题比二分类问题稍稍复杂一些,但旨趣相似。咱们假定目下有一个对于生果分类的数据集,包含神采、大小两个特征,以及一个指标变量:生果类型(苹果、香蕉、橙子)。
数据准备(多分类)
1python复制代码 2# 创建一个示例数据集(多分类) 3 data_multi = { 4 'color': ['red', 'yellow', 'orange', 'yellow', 'red', 'orange', 'yellow', 'orange', 'red', 'yellow'], 5 'size': ['small', 'medium', 'large', 'large', 'medium', 'small', 'medium', 'large', 'small', 'medium'], 6 'fruit_type': ['apple', 'banana', 'orange', 'banana', 'apple', 'orange', 'banana', 'orange', 'apple', 'banana'] 7 } 8 df_multi = pd.DataFrame(data_multi) 910# 将分类变量调养为数值变量(独热编码)11 df_multi = pd.get_dummies(df_multi, columns=['color', 'size'], drop_first=True)
构建多分类GLM模子
对于多分类问题,咱们频繁使用Multinomial散播。在statsmodels中,这需要咱们稍稍调养一下模子构建的面目。
1python复制代码2# 指定模子公式(多分类)3 model_multi = sm.MNLogit(df_multi['fruit_type'], df_multi.drop(columns=['fruit_type']), ref_category='apple')45# 拟合模子6 result_multi = model_multi.fit()7 print(result_multi.summary())
运行截止同样会显现模子的详备信息。重视,这里咱们指定了一个参考类别(ref_category='apple'),这意味着模子将输出相对于苹果类别的概率比。
总结与熟谙
小伙伴们,今天咱们学习了怎么使用statsmodels库中的GLM模子来分析二分类和多分类问题。通过实例,咱们了解了怎么准备数据、构建模子、阐述截止。GLM模子是一个远大的器用,不错匡助咱们潜入贯串数据中的复杂关系。熟谙题:1.尝试使用GLM模子分析一个包含更多特征的二分类数据集,比如有计划用户是否会点击一个告白。2.对于多分类问题,尝试蜕变参考类别,不雅察模子截止的变化。3.想考并探究:在二分类问题中,为什么咱们频繁使用logit相接函数?在多分类问题中,MNLogit模子是怎么责任的?记起多多来源熟谙,现实是熟谙学习效能的最佳设施。有任何疑问随时在批驳区找我雷同哦。祝群众学习顺利,Python手段更进一竿!