2.1线性分类-part1

本文探讨了分类任务中常见的模型及其实现方式,包括如何表示类别标签、广义线性模型的应用、判别函数的设计以及多类分类问题的解决策略。

分类

目标:给定数据数据 x x ,为其分配一个离散的类标签Ck这里 k=1,...,K k = 1 , . . . , K
将输入空间分为不同的区域。

如何表示二值类标签

类型标签不再是实数,而是离散集。
两类: t{0,1} t ∈ { 0 , 1 }
t=1 t = 1 表示类 C1 C 1 , t=0 t = 0 表示类 C2 C 2

当类型标签数量大于2时,类如何表示

常用:one-hot 编码,是长度为K的向量,除了位为1外,其他位都为0
例如:给定五类, {C1,C2,...C5},C2 { C 1 , C 2 , . . . C 5 } , C 2 可以表示为以下形式

t=(0,1,0,0,0)T t = ( 0 , 1 , 0 , 0 , 0 ) T

广义线性模型

想法:仍然使用上一章回归中用到的线性模型

y(xn,w)=wTΦ(xn) y ( x n , w ) = w T Φ ( x n )

但是 y(xn,w) y ( x n , w ) ∈ R
y(xn,w)=0.71623 y ( x n , w ) = 0.71623 时,属于哪一类
使用映射函数 f f 将线性模型映射到离散的类型标签
广义线性模型为
y(xn,w)=f(wTΦ(xn))

激活函数: f(.) f ( . )
链接函数: f1(.) f − 1 ( . )

推理和决策

辨别函数

找到一个辨别函数 f(x) f ( x ) 直接将输入映射到类标签

生成模型

1、使用贝叶斯理论推断后验分布 p(Ck|x) p ( C k | x ) ,需要考虑先验分布 p(Ck) p ( C k ) p(X|Ck) p ( X | C k )
也可以对联合分布 p(X,Ck) p ( X , C k ) 建模
2、使用决策论对x分配类
例子:

辨别模型(discriminative model)

辨别模型是确定一个函数,这个函数能直接将输入向量X,映射到K类别中的一类,表示为 Ck C k
1、直接计算 p(Ck|X) p ( C k | X )
2、使用决策理论(decision theory)为每一个新的X分配一个类型标签

判别函数

两类

先来考虑类型有两类的情况( K=2 K = 2
建一个关于输入 x x 的线性函数

y(x)=wTx+w0 y ( x ) = w T x + w 0

y(x)>0 y ( x ) > 0 时, x x 属于 C1 C 1 否则属于 C2 C 2
决策边界 y(x)=0 y ( x ) = 0 是D维度输入空间的(D-1)维超平面
w w 正交于决策平面上的任意向量
证明:令 xA x A xB x B 是决策平面上的两点,则
0=y(xA)y(xB)=wT(xAxB) 0 = y ( x A ) − y ( x B ) = w T ( x A − x B )

原点到超平面的距离为
这里写图片描述
为了让概念更加经凑,给输入空间添加一个额外的维度 x0=1 x 0 = 1
接着定义 w~=(w0,w) w ~ = ( w 0 , w ) x~=(w0,x) x ~ = ( w 0 , x )
y(x)=w~Tx~ y ( x ) = w ~ T x ~

决策平面现在为D+1维输入空间的,D维超平面。

多类

当类型多余2的时候
能否组合K-1个 one-versus-the-rest分类器
这里写图片描述
能否组合K(K-1)个one-versus-one个分类器
这里写图片描述
正确的方法:
使用K个线性函数

yk(x)=wTk+wk0 y k ( x ) = w k T + w k 0

输入 x x 属于 Ck C k yk(x)>yj(x) y k ( x ) > y j ( x ) 对于任何 jk j ≠ k
决策平面为
yk(x)=yj(x) y k ( x ) = y j ( x )

这里写图片描述

最小二乘

在第一章里面使用最小二乘解决回归问题,分类问题能不能使用这个方法呢,答案是可以的。
给定输入数据 x x 属于K类中的一类 Ck C k
使用one-hot编码
判别函数为

y(x)=W~Tx~ y ( x ) = W ~ T x ~

对于一个新输入的 x x ,它的类型由值最大的 y(x) y ( x ) 决定。

如何求 W~ W ~

给定训练集{ xn,t x n , t }其中 t t 是one-hot编码。
定义矩阵 T T 其中第n行对应 tTn t n T
误差和可以写为

ED(W~)=12tr{(X~W~T)T(X~W~T)} E D ( W ~ ) = 1 2 t r { ( X ~ W ~ − T ) T ( X ~ W ~ − T ) }


W~=(X~TX~)1X~TT W ~ = ( X ~ T X ~ ) − 1 X ~ T T

时候误差取到最小值
这里写图片描述
上图中绿线是逻辑回归的决策平面,紫线是最小二乘线性回归的决策平面,可以看到二小二乘的决策平面容易受到离群点扰动。
为什么会这样呢?
这是因为最小二乘训练的时候每一个训练数据对决策平面都具有相同的影响,而逻辑回归通过sigmoid激活函数降低了离群点对决策平面的影响。

帮我讲解一下这个stata代码 use infmrt,clear regress infmort lpcinc lphysic lpopul if year==1990 graph twoway (scatter infmort physic) if year==1990 tab physic DC regress infmort lpcinc lphysic lpopul if year==1990 & DC==0 /* -------------------------------------------------------------------------------- -- Part 1: Outputting Summary Statistics Tables -------------------------------------------------------------------------------- */ // --- 1.1: Load Data and Quick Look --- // We use Stata's built-in dataset about cars from 1978. sysuse auto, clear // The most basic command to see summary stats in the Stata window. summarize price mpg weight length foreign // --- 1.2: Export to Word using estpost and esttab --- // This is the standard method for creating a publication-quality table. // Step 1: Use 'estpost summarize' to calculate and store the statistics. estpost summarize price mpg weight length foreign // Step 2: Use 'esttab' to format and export the stored results to a Word file (.rtf). esttab using "summary_statistics.rtf", replace /// cells("count(fmt(0)) mean(fmt(2)) sd(fmt(2)) min(fmt(0)) max(fmt(0))") /// title("Table 1: Summary Statistics for Auto Data") /// label nonumber /* -------------------------------------------------------------------------------- -- Part 2: Outputting Basic Regression Tables -------------------------------------------------------------------------------- */ // --- 2.1: Run and Store a Series of Models --- // We will run two models and compare them side-by-side in one table. // Model 1: A simple regression of price on mileage (mpg). regress price mpg, vce(robust) estimates store model1 // Store the results with the name 'model1' // Model 2: A multiple regression, adding weight and car type (foreign). // 'i.foreign' tells Stata to treat 'foreign' as a categorical variable. regress price mpg weight i.foreign, vce(robust) estimates store model2 // Store the results with the name 'model2' // --- 2.2: Combine and Export Models to Word with esttab --- // This command takes the two stored models and creates a single table. esttab model1 model2 using "regression_table.rtf", replace /// b(3) se /* Show coefficients to 3 decimals and standard errors in parentheses. */ /// star(* 0.10 ** 0.05 *** 0.01) /* Define significance stars. */ /// label /* Use variable labels instead of names. */ /// title("Table 2: Regression of Price on Car Characteristics") /// mtitles("Model 1" "Model 2") /* Custom titles for each model column. */ /// stats(N r2_a, fmt(0 3) labels("Observations" "Adj. R-squared")) /* Add N and Adj. R2 to the bottom. */
最新发布
10-16
以下是对给定 Stata 代码各部分功能的详细讲解: #### `use infmrt,clear` 这行代码用于打开名为 `infmrt` 的数据集,并清除当前内存中可能存在的其他数据集。`use` 是 Stata 中用于打开数据集的命令,`clear` 选项表示在打开新数据集之前清除内存中的现有数据。 #### `regress infmort lpcinc lphysic lpopul if year==1990` - `regress` 是 Stata 中进行线性回归分析的命令。 - `infmort` 是因变量,即需要被预测或解释的变量。 - `lpcinc`、`lphysic` 和 `lpopul` 是自变量,用于解释因变量的变化。 - `if year==1990` 是一个条件语句,它限定了回归分析仅使用 `year` 变量值为 1990 的观测数据。 #### `graph twoway (scatter infmort physic) if year==1990` - `graph twoway` 是 Stata 中用于绘制二维图形的命令。 - `(scatter infmort physic)` 表示绘制散点图,其中 `infmort` 为纵坐标变量,`physic` 为横坐标变量。 - `if year==1990` 同样是条件语句,限定了绘图仅使用 `year` 变量值为 1990 的观测数据。 #### `tab physic DC` `tab` 是 Stata 中用于生成列联表的命令。这行代码生成了 `physic` 和 `DC` 两个变量的列联表,用于展示两个分类变量之间的频数分布关系。 #### `regress infmort lpcinc lphysic lpopul if year==1990 & DC==0` 这行代码与之前的 `regress` 命令类似,但增加了一个条件 `DC==0`。它进行线性回归分析的条件是 `year` 变量值为 1990 且 `DC` 变量值为 0 的观测数据。 ### 输出统计摘要表和回归表的代码示例 #### 输出描述性统计摘要表 ```stata summarize infmort lpcinc lphysic lpopul if year==1990 ``` `summarize` 命令用于生成变量的描述性统计信息,如均值、标准差、最小值、最大值等。这里限定了只对 `year` 为 1990 的数据进行统计。 #### 输出回归结果表并保存为文本文件 ```stata regress infmort lpcinc lphysic lpopul if year==1990 esttab using regression_results.txt, replace ``` `esttab` 是一个外部命令(需要先安装),用于将回归结果以表格形式输出。`using regression_results.txt` 指定了将结果保存到名为 `regression_results.txt` 的文本文件中,`replace` 选项表示如果文件已存在则覆盖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值