ML week4.1.2
2025.03.26 Wed PM 2:43 ・ 34Minutes 9seconds
ZHANG YIWEN
ML 第 4 周 4.1.2 2025.03.26 周三 下午 2:43 ・ 34 分钟 9 秒 张艺文
Attendees 1 00:02
네 그다음에 이제 우리가 사이클론의 라이브러리 함수를 써가지고 로지 레이션을 이 아이리스라는 한 걸 해볼 예정입니다.
그래서 여기 보면 아이리스 데이터셋이 뭔지는 우리가 전에 얘기했죠.
아이리스라는 꽃 그것을 이제 세 가지 품종 중에 하나로 분류하는 요소고 네 가지 값을 가지고 조리를 하는 겁니다.
그래서 그게 사이클 란에 보면 데이터셋이라는 모듈이 있어서 거기에 흔하게 사용되는 많은 데이터들을 불러올 수 있는 함수들이 제공이 됩니다.
그래서 보면 아이리스 데이터셋은 그다음 로드 아이리스라는 것을 함수를 호출해서 가져올 수가 있고 이거 가져오면 여기 써 있는 것처럼 어떤 디셔널리 형태로 쭉 정보들이 제공이 돼요.
그래서 어떤 디셔널에 어떤 정보들이 있냐 하면 일단 데이터 x죠.
가서 찍어보면 이런 식으로 돼 있어요. x 제로 1, 2 3 4개의 값으로 표현되는 x 데이터가 지금 3개만 한 데 더 있죠.
총 150개의 데이터가 있고 그다음에 y 값은 타겟이라고 불러져요.
与会者 1 00:02 是的,接下来我们将使用 Cyclone 库的函数来进行逻辑回归,以处理鸢尾花数据集。我们之前已经讨论过鸢尾花数据集是什么。鸢尾花,它将被分类为三个品种之一,并使用四个值进行处理。在 Cyclone 中,有一个数据集模块,提供了许多常用数据集的加载函数。可以通过调用 load_iris 函数来加载鸢尾花数据集,加载后,数据将以字典的形式呈现。在这个字典中,有哪些信息呢?首先是数据 x,如果打印出来,会是这样的形式。x 由 0、1、2、3 四个值表示,这里显示的是 3 个,但实际上共有 150 个数据点,接下来是 y 值,也称为目标值。
Attendees 1 01:24
타겟을 가서 보면 각각의 데이터에 대해서 클라스 제곱 클라스 1 클라스 2를 정답이 이거다라고 주는 거죠.
피처 네임스라고 돼 있는 거는 요 각 x 제로 엑스원 것에 이제 이름이 붙어 있어서 그 정보 그다음에 다겟 네임이라는 것은 클래스의 이름 이런 것들이 같이 주어집니다.
그래서 이거 읽어드려서 이 중에서 이제 우리가 학습에 사용할 트레이닝 데이터는 여기 데이터 부분과 타겟 부분을 빼내서 확률로 표현한 다음에 사용하는 거예요.
판다스에서 데이터 프레임 형태로 이걸 읽어드려가지고 한번 보면 이렇게 돼 있죠.
x가 4개의 값으로 표현되고 y 값이 이렇게 주어지고 총 데이터의 개수는 150개다.
与会者 1 01:24 当你去目标查看时,对于每个数据,类的平方类 1,类 2 被给定为正确答案。特征名称是指每个 x 零 x1 等的名称,因此提供了这些信息,然后目标名称是类的名称等。所以我们从中读取数据,提取出用于学习的训练数据的数据部分和目标部分,然后用概率表示并使用。在 Pandas 中以数据框的形式读取,看起来是这样的。x 以 4 个值表示,y 值如此给出,总数据量为 150 个。
Attendees 1 02:18
그래서 x 값이 x 값이 이런 값인 경우에 이거는 0번 클래스였더라 하는 데이터가 총 150개가 있다 이거예요.
오늘은 바이너리 클래스케이션을 먼저 해보기 위해서 이 중에 일부만 데이터를 선택해서 이제 사용하는 걸로 했어요.
그래서 클래스 제로와 클래스 원까지 안 싹 끊어서 여기 보면 피처는 2번과 3번 0 1 2 3 중에 2번과 3번 두 개의 피처 값만 쓰고 그다음에 클래스는 0과 1인 것만 골라 쓰면 여기 보면 2 3 컬럼을 가져오고 그다음에 탑에서는 100번까지만 얘네들이 50개의 클래스 제로 50개 50개의 2가 있을 거예요.
이렇게 싹 가져와서 로지스틱 인덱션을 해보겠다 하는 거고 네 그래서 이제 두 개의 값으로 표현되니까 2차원 평균상의 데이터의 분포를 우리가 스캐터 플러스를 해볼 수가 있겠죠.
그렇게 되면 이게 그래서 0번 클래스와 1번 클래스 데이터들이 이렇게 x 값에 대해서 클래스를 가지는구나 볼 수가 있어요.
与会者 1 02:18 因此,对于 x 值为这样的情况,这是 0 类的数据,总共有 150 个。今天为了首先进行二分类,我们从中选择了部分数据。所以我们截取了类零和类一,如果你看的话,特征使用了 2 号和 3 号(0 1 2 3 中的 2 和 3),类选择了 0 和 1。你可以看到,获取了 2 和 3 列,然后顶部是前 100 个,它们有 50 个类零,50 个类二。这样获取并进行逻辑回归,所以由于用两个值表示,我们可以在二维平面上绘制数据分布的散点图。这样,我们就可以看到 0 类和 1 类数据在 x 值上的类别分布。
Attendees 1 03:30
이거 쉽게 어 그냥 앞서 말한 그런 직선의 디시션 바운더리를 우리가 쉽게 구할 수 있겠다 생각이 들죠.
그런 식으로 딱 가를 수가 있어 보이는 거예요. 네 그래서 일단 이제 앞으로도 외모 많이 쓸 건데 데이터를 우리가 트레이닝과 이게 우리의 데이터 전체면 이거를 트레이닝 데이터셋과 테스트 데이터셋으로 보통 나눠서 트레이닝 데이터로 학습을 하고 테스트 데이터로 검증을 해 하는 거죠.
이렇게 보통 사용해서 그때 우리가 사이클라에서 제공되는 트레이닝 테스트 스트릿이라는 함수를 많이 써요.
그래서 이거는 전체 데이터셋 x와 y인데 텍스트 셋 사이즈를 0.3 30%로 이걸 나눠라.
여기 왼쪽처럼 4개의 이제 데이터 셋을 얘가 잘라서 만들어주는 거죠.
그래서 학습에 사용할 트레이닝 데이터와 검증에 사용할 테스트 데이터 스트레스 테스트에 대해서 수입을 한번 살펴보면 트레이닝 데이터가 70개 테스트 데이터가 30개 차원은 두 개였죠.
参会者 1 03:30 这个看起来很容易,嗯,就像之前说的那样,我们可以轻松地找到决策边界的直线。看起来可以这样精确地划分。是的,所以接下来我们还会大量使用外貌,如果这是我们的全部数据,我们通常会将其分为训练数据集和测试数据集,使用训练数据进行学习,使用测试数据进行验证。通常我们会使用 scikit-learn 提供的 train_test_split 函数。这是整个数据集 x 和 y,将测试集大小设置为 0.3,即 30%。它会像左边这样将数据集切分成 4 个数据集。这样,我们就可以为学习准备训练数据,为验证准备测试数据。让我们看看压力测试,训练数据有 70 个,测试数据有 30 个,维度是两个。
Attendees 1 04:51
3 x 4 이렇게 만들어졌구나 확인할 수 있고 이제 사이클론을 이용해서 로지스틱 리게이션을 하는 건 그냥 이렇게 한 줄 쓰면 됩니다.
로지스틱 리그레션의 인스턴스를 만들어서 트레이닝 데이터로 핏 합니다.
参会者 1 04:51 可以确认是 3x4 这样构建的,现在使用 scikit-learn 进行逻辑回归只需要写一行代码。创建逻辑回归实例,然后使用训练数据进行拟合。
Attendees 1 05:14
파라미터의 이름은 지난주처럼 코입션트 인터셉티 이렇게 표현이 돼 있어요.
그리고 프린트를 해보면 두 개의 w 값과 하나의 b 값을 받는지 학습을 했다.
어디다 이걸 확인할 수 있고
参会者 1 05:14 参数的名称像上周一样,用变量拦截器表示。通过打印,我们学习到了获取两个 w 值和一个 b 值。我们可以在哪里确认这一点?
Attendees 1 05:32
머릿속에 모델이 뭔지는 우리가 그래 wg x 제로 이렇게 해서 선형식 그걸 g 값이라고 하고 거기 시그머이드 하면 yh 확률이 나오는 거죠.
그러면 DCC 바운더리는 어떻게 되나요? DC 바운더리는 WJX제로 플러스 ws 1 플러스 b 이콜 제로가 DC 바운더리가 됐죠.
우리가 앞에서는 그 파라미터를 가지고 직접 우리가 이 식으로 계산식을 써서 플러스 해봤어요.
그런데 이제 앞으로는 다양한 사이클론이나 이런 라이브러리를 써서 모델을 학습하고 나서 얘가 나타내는 디시 바운더리가 뭐냐 하는 이런 함수를 가지고 보통 이제 결과를 우리가 볼 거예요.
이거는 여러분들이 이거 코딩을 하라고 써놓은 건 아니고 우리 참고로 하는 파이썬 머신러닝 책에 보면 디시전 바운더리를 이렇게 시각적으로 보여주기 위해서 이런 일반화된 함수를 자기네들이 만들어서 거기서 쓰고 있어요.
그래서 그거 그냥 갖다 쓴 거고 대략의 어떤 내용인가만 여러분들이 이해하고 그냥 이 함수를 쓰면 돼요.
参会者 1 05:32 在脑海中,模型是什么,我们知道是 wg x 零,这样形成了一个线性方程,称为 g 值,然后加上 sigmoid 函数后得到 yh 概率。那么决策边界是什么?决策边界是 WJX 零加上 WS 1 加上 b 等于零。我们之前是直接用这些参数,用这个计算式进行计算。但现在,我们将使用各种 scikit-learn 等库来学习模型,然后查看它代表的决策边界是什么,通常会用这样的函数来查看结果。这并不是要求你们编写这段代码,而是在参考的 Python 机器学习书籍中,为了直观地展示决策边界,他们创建了这种通用函数。所以只是直接使用它,你们只需要大致理解其内容,然后使用这个函数即可。
Attendees 1 06:44
이거 어떤 내용이냐 하면 여기 우리가 앞에 했던 것처럼 레시 그리드 그러니까 지금 2D 면제로 한 데이터니까 x3 x4에 대해서 이런 각각의 데이터 포인트들을 쭉 설정하고 거기에 대해서 내가 학습한 모델로 클래식 파이어라고 돼 있는 게 학습한 모델이에요.
모델의 프리딕트 메소드를 써서 요 각각의 메시 그리드 포인트 데이터 포인트에 대해서 클래스 값을 예측을 하는 거 그게 g 값이에요.
参会者 1 06:44 讲的是什么内容呢?就像我们之前做的那样,网格,也就是现在的 2D 网格,对于 x3 和 x4,我们设置了各个数据点,并使用我们学习的分类器模型对这些网格点数据点进行预测。这就是 g 值。
Attendees 1 07:25
네 그래놓고 밑에 PLT 컨트로 f라고 돼 있는 건 뭐냐 하면 컨트로어라는 게 지금 맵 플로 라이브리에 보면 이런 어떤 값이 어떻게 분포되는가를 등고선처럼 표현하는 게 컨트로고 컨투어 f는 여기에 이제 색깔로 구분하는 게 컨투어 f예요.
그래서 지금 뭘 하고 있는 거냐 하면 이 각각의 설정된 그리드 포인트마다의 x에 대해서 예측된 클래스 값이 뭐냐를 0 아니면 이 값을 쭉 갖고 있겠죠.
그걸 서로 다른 색깔로 그림 그려라.
参会者 1 07:25 接着下面的 PLT 控制 f 是什么呢?控制器是指在 matplotlib 库中,如何像等高线一样展示值的分布。等高线 f 是用颜色来区分的。现在正在做的是,对于每个设置的网格点,预测 x 的类别值是什么,是 0 还是其他值。然后用不同的颜色绘制出来。
Attendees 1 08:10
그럼 이제 보니 오른쪽 아래에 있는 그림같이 이게 아마 값이 제로인 걸 붉은색으로 값이 1인 거를 파란색으로 지금 색칠을 한 걸 거예요.
아까는 우리가 이 선 자체를 파라미터로 그냥 계산해서 선을 플롯 했지만 이거는 이제 앞으로 이게 이게 직선이 아니고 막 이상한 모양이고 그럴 수 있기 때문에 요 다양한 x 값에 대해서 클래스가 뭔지를 그냥 색칠해서 보여주는 색칠해서 보여주면 붉은색 부분과 파란색 부분이 구분되는 점이 이렇게 보이겠죠.
이게 이제 우리의 디시전 바운더리 역할을 합니다.
실제 이 앞에 파란 메탈 가지고 직선을 그려봐도 똑같은 아마 라인이 그려질 거예요.
네 그래서 이거는 이런 식으로 그림을 그리는 거구나라고 대략 이해를 하고 그냥 앞으로 이걸 어떤 디션 바운더리를 내가 모델에 대해서 이제 그려나갈 때 이렇게 갖다가 쓰면 되겠습니다.
네 그래서 지금 보면 두 개의 클래스를 잘 가르는 디스전 바운더리가 얻어졌다 이걸 볼 수가 있죠.
参会人 1 08:10 那么现在看来,就像右下角的图片一样,这个可能是值为零的以红色标出,值为 1 的以蓝色标出。刚才我们只是通过计算参数绘制了这条线,但现在是为了表明未来这不再是一条直线,可能是各种形状,因此对于各种 x 值,将类别着色显示,红色部分和蓝色部分将被分开。这就是我们的决策边界。实际上,即使用蓝色金属线绘制,可能也会得到相同的线。是的,所以这就是绘图的方式,我们大致理解了这一点,并且今后在为模型绘制决策边界时可以这样使用。是的,现在我们可以看到,获得了一个很好地分隔两个类别的决策边界。
Attendees 1 09:15
정확도를 계산하기 위한 스코어 같은 메소드가 제공이 돼서 이거 스코어하고 트레이닝 데이터 페어를 주면 이건 이제 트레이닝 데이터에 대해서 몇 퍼센트나 맞추느냐를 계산하는 걸 테고 테스트 데이터에 주면 이런 테스트 데이터에 대한 에큐러시를 내가 계산을 해줘야 돼 주어진 XY 페어에 얼마나 부합하는지를 제가 쭉 예측한 거랑 비교해서 퍼센트케이스를 하는데 지금은 앞에서 보다시피 100% 잘 맞추는 모델을 쉽게 얻고 대부분은 이제 트레이닝 에큐로시는 높게 나오더라도 테스트 에큐로시는 그것보다 좀 낮고 이런 경우가 볼 수 있겠죠.
그다음에 프리딕트 이제 f 하는 게 학습하는 메소드고 프리딕트는 이제 예측하는 메소드잖아요.
프리딕트 프로버빌리티가 있어요. 프로버빌리티는 각각의 클래스에 대해서 예측한 이거죠.
그러니까 y h 값을 이제 확률 값을 직접 보여주는 거예요.
参会人 1 09:15 提供了用于计算准确度的评分方法,如果给定训练数据对,它将计算在训练数据上的百分比正确率;如果给定测试数据,它将计算测试数据的准确率,即比较我预测的内容与给定的 XY 对有多么吻合。就像我们之前看到的,很容易获得 100%准确的模型,但大多数情况下,训练准确率可能很高,而测试准确率会稍低。接下来,拟合是学习的方法,预测是预测的方法。还有预测概率。概率是针对每个类别的预测,也就是直接显示 y h 值的概率值。
Attendees 1 10:20
그래서 우리가 학습한 모델 같은 경우에 테스트 데이터에 처음에 한 5개를 임의로 뽑아서 내가 프라모빌리티 한번 출력을 해보면 이런 식으로 보인다는 거죠.
첫 번째 데이터는 이쪽의 확률이 크고 이쪽이 압도적으로 높네요.
두 번째 데이터도 그렇고 세 번째 데이터는 이쪽의 확률 값이 높고 네 번째 다섯 번째 이거에 따라서 프리딕션은 이걸 1번 클래스로 이걸 0번 클래스로 이치하고 그죠 프리딕트라는 함수가 이제 바로 그런 걸 하는 거고 네 요 위에 건 y 이거는 예측된 y 클래스를 예측하기 두 개가 이제 정확히 인 찍어보면 알 수가 있어요.
그런 거면 이 확률 값에서 나올 거다 이거죠.
与会者 1 10:20 所以对于我们学习的模型,如果我们从测试数据中随机抽取前 5 个并输出概率,情况大概是这样。第一个数据的这一侧概率较高,另一侧明显更高。第二个数据也是如此,第三个数据这一侧的概率值较高,第四个和第五个根据这个进行预测,这个归类为 1 类,这个归类为 0 类,对吧?预测函数就是做这个的。这两个现在可以准确地标记出来。这就是从这些概率值中得出的结果。
Attendees 1 11:16
네 이건 바이너리 클래스케이션을 하는 거고 이제 우리가 어떤 문제는 클래스가 여러 개 있을 수 있어요.
예스냐 노냐 이렇게 결정하는 건 마이너리 클래스케이션 a냐 b냐 c냐 결정하면 멀티 클래스의 클래스피케이션이죠.
이런 경우에는 예를 들어서 우리가 이걸 어떤 식으로 표현할 수 있냐 하면 내가 예측하려는 y 값이 하나 둘 세 개 이렇게 이렇게 표현할 수도 있겠어요.
그러면 모든 y 값은 0 안이면 1인데 3개의 y 값 에 의해서 100이면 a 클래스 010이면 b 클래스 이렇게 이제 표현을 하는 거죠.
네 그랬을 때 멀티플 클래스인 경우에 내가 이제 결정하는 모델을 찾는 방법은 보면 두 가지 을 써놨어요.
하나는 ovi에서 1 로스 레스트 그건 뭐냐 하면 3개의 클래스가 있으면 3개의 클래스를 직접 구분하는 게 아니라 각각의 클라스에 대해서 그게 맞냐 혹은 그게 아닌 게 맞냐 바이너리 클래스피케이션을 하는 여기 지금 세모 x 네모 세 가지 클래스가 있어요.
与会者 1 11:16 是的,这是进行二分类,而我们有些问题可能有多个类别。是与否这样决定是二元分类,a 还是 b 还是 c,这就是多类分类。在这种情况下,例如,我们可以这样表示:我要预测的 y 值可能是 1、2、3 等。那么所有的 y 值都是 0 或 1,但有 3 个 y 值,如果是 100 则表示 a 类,010 表示 b 类,就是这样表示的。当是多类的情况时,找到决策模型的方法有两种。一种是 OvI 或一对多,如果有 3 个类别,不是直接区分这 3 个类,而是对每个类别分别进行是否正确的二分类,这里现在有三角形、方形等三种类别。
Attendees 1 12:32
그럼 이거를 클래스를 결정하기 위해서 어떻게 하냐 하면 이 직선을 하나 학습하고 세모냐 아니냐 이건 바이너리 클래스피케이션이죠.
그다음 요 직선 네모냐 아니냐 그다음에 요 직선 x냐 아니냐 그럼 3개의 바이너리 클래식 바이너리 이제 클래시피케이션 모델을 학습하는 거겠죠.
그러고 나면 이걸 싹 합치면
参会者 1 12:32 那么要如何决定这个类别呢?就是学习这条直线,判断是三角形还是不是三角形,这是二元分类。然后这条直线是正方形还是不是正方形,接下来这条直线是 x 还是不是 x,那么就是 3 个二元分类,现在学习这些二元分类模型。然后把它们全部组合起来
Attendees 1 13:04
합치면 여기 가운데에 있는 이런 모양이 있는데 특정한 x 값에 대해서 클래스를 결정하려면 어느 쪽에 가깝냐로 따지면 되겠죠.
어느 쪽에 가깝냐에 따라서 디시션이 만들어지는 영역을 우리가 쭉 표시해 보면 결국은 이런 식의 구분하는 디시션 바운더리가 된다라는 걸 알 수가 있습니다.
이 빨간 선에 해당되는 걸 우리가 직접 찾는 건 아니고 3개 를 얻어서 그것에 조합으로 결정을 내리는 형태로 있죠.
라이브러리에 보면 이런 방법 혹은 멀티모미알 이렇게 선택하도록 돼 있는 것이 있어 멀티노미아는 어떻게 하겠다는 거냐 하면 이 뭐야 3개의 클래스에 대한 직접적인 각각의 확률을 계산해내는 이제 모델을 찾는 거예요.
여기 보면 지금 어떤 3개의 값으로 표현되는 x에 대해서 내가 클래스 1 2 3 중에 하나를 결정하려고 하는 거다.
参会者 1 13:04 组合起来后,这里中间有这样一个形状,对于特定的 x 值,要决定类别,就看它更接近哪一侧。根据它更接近哪一侧,可以绘制出决策区域。最终可以看出这就是我们区分的决策边界。我们并不是直接找这条红线,而是获得 3 个模型,通过它们的组合来做决策。在类库中,你会看到这种方法或多项式选择。多项式是什么意思呢?就是直接计算 3 个类别各自的概率,找出这个模型。在这里,对于用 3 个值表示的 x,我要从类别 1、2、3 中选择一个。
Attendees 1 14:16
그러면 앞에 우리가 바이너리 클래시피케이션에서 로지스틱 리그레션 모델처럼 x1 곱하기 w x 2 곱하기 w x2 곱하기 w 플러스 b로 z를 계산하는 부분이 서로 다른 세 개가 있어요.
与会者 1 14:16 如果像逻辑回归模型那样,我们在二进制分类中计算 z 的部分,x1 乘以 w,x2 乘以 w,x2 乘以 w 加上 b,这三个部分是不同的。
Attendees 1 15:03
네 그다음에 요거
与会者 1 15:03 是的,接下来是这个
Attendees 1 15:12
여러분 얘네들이 각각 설정된 파라미터에 의해서 g 값들을 계산하겠죠.
与会者 1 15:12 大家将根据各自设置的参数计算 g 值。
Attendees 1 15:32
그러고 나서 바이너리 클래스케이션은 여기에 이제 시그머리를 딱 적용해서 여기 1.2가 들어가는지 0.2가 들어가는지 판단을 하는 거고 얘는 이 3개의 집값을 계산한 거로부터 예를 들어서 이렇게 집값이 나왔다 그러면 궁극적인 각 클래스의 확률을 측정 계산해요.
확률은 어떻게 계산하냐 하면 이렇게 계산 이 경우에는 각각의 z 값에 익스포네이션을 취한 거에 근데
与会者 1 15:32 然后,对于二分类,现在将 sigmoid 函数直接应用于此,判断 1.2 还是 0.2 是否属于该类,并且从这 3 个房价的计算中,例如,如果房价是这样计算出来的,那么最终将测量计算每个类别的概率。如何计算概率?在这种情况下,对每个 z 值取指数,但是
Attendees 1 16:16
각각의 익스포넨셜 지가 그러면 이게 합하면 1이 되는 답들이겠죠.
g 값이 클수록 높은 값이고 합하면 1이 되는 것. 그래서 이걸 우리가 확률 사용이라고 이렇게 계산하는 걸 소프트맥스
参会者 1 16:16 每个指数地如果相加会变成 1 的答案。g 值越大,值越高,相加会变成 1。所以我们将这种计算称为使用概率,这就是所谓的 softmax
Attendees 1 16:49
집값 선형식으로 계산하고 그거에 따라서 소프트맥스로 확률 값을 얻은 다음에 확률 값이 최대가 되는 클래스를 선택한다.
이렇게 되면 이건 클래스 1번이라고 결정하는 거고 두 번째 가서 드렸던 클래스 2번이라고 결정하는 거죠.
参会者 1 16:49 使用线性方程计算房价,然后通过 softmax 得到概率值,选择概率值最大的类别。这样就决定为类别 1,然后去第二个类别,决定为类别 2。
Attendees 1 17:12
네 이거나 이거나 비슷하게 파라미터는 3개의 세트를 우리가 학습하게
与会者 1 17:12 是这个还是那个,参数大致是我们要学习的 3 个集合
Attendees 1 17:27
이때 코스트 펑션은 우리가 크로스 엔트로피라고 그래서 마이너스 와 로그 와 h 을 모든 플러스에 대해서 계산한 것은 우리가 코스트 펑션 이렇게 계산하겠다는 거죠.
만약에 y 값이 이렇게 하면 이건 클 클래스 1번이 정답이다 이렇게 주어진다는 거죠.
만약에 내가 예측을 했는데 클래스 1번의 확률이 63 2가 25 3 10이라면 y 러그 y n y 러그 와 n 와 로그 와 이렇게 하면 이것이 우리에 크로스 엔트로피 값이 되는 거고 아까 봤던 것처럼 이 각각의 의미는 이제 y 값이 1인 클래스에 대해서 확률 값이 가장 높을 때 이 코스트 펑션은 드니 펌으로 가게 돼 있습니다.
네 이건 사실은 바이너리 클래스케이션 우리가 이전에 좀 전에 봤던 거랑 똑같은 얘기죠.
바이너리 클래스케이션은 만약에 클래스가 제로고 1일 확률이 0.63이라고 나왔다면 우리는 이렇게 하잖아요.
y 로그 y h 그다음에 이건 1 마이너스 와 그러고 1 마이너스 yh 이렇게 계산했었죠.
与会者 1 17:27 这时代价函数是我们所说的交叉熵,即对所有正类计算负对数和 h。假设 y 值如此,这表示第 1 类是正确答案。如果我预测类别 1 的概率是 63,类别 2 是 25,类别 3 是 10,那么 y 对数 y 和 n 对数 n 将计算出我们的交叉熵值。就像之前看到的那样,这些值的意义在于当 y 值为 1 的类别概率最高时,这个代价函数将变为零。是的,这实际上与我们之前看到的二分类完全相同。在二分类中,如果类别 0 和 1 的概率是 0.63,我们会这样计算:y 对数 yh,然后是 1 减去 y,再乘以 1 减去 yh。
Attendees 1 18:59
이게 만약에 클래스 a 클래스 b 이 클래스 c를 나타내는 거라면 바이너리 트레시피케이션에서는 이게 클래스 a고 이건 클래스 a가 아닌 것인데
如果这是代表类别 A、类别 B 和类别 C,在二值分类中,这是类别 A,而这不是类别 A
Attendees 1 19:16
이렇게 쓰고 나면 위에 거 하고 아래 게 클래스가 2개일 때 3개일 때 혹은 그 이상일 때 결국은 같은 계산을 하는 거다라는 걸 알 수가 있고
这样写之后,可以看出上面的和下面的,当有 2 个类别、3 个类别或更多类别时,最终都是进行相同的计算
Attendees 1 19:35
네 그래서 지금 클래스가 3개인 경우에 사이클 망 써서 하는 것을 한번 보면 이제는 이제 투 디맨저널하게 2개의 x 값만 썼지만 클래스는 0인 것과 1인 2인 걸 다 써서 150개의 데이터를 이렇게 쓴 거예요.
그래서 디스플레이 해보면 플롯 해 보면 이게 클래스 제로인 데이터들 원인 데이터들 2인 데이터들 아마 이렇게 될 거고 네 여기 보면 이런 데는 살짝 요거 두 개의 x 값만으로는 이게 구분이 잘 안 되겠구나 하는 부분이 이제 눈에 보이죠.
겹치는 부분이 있어요. 이거 로지스틱 리그레션 마찬가지로 써가지고 모델을 학습하는데 여기 보면 멀티 클래스의 값을 줬죠.
이거 여러분들 가서 사이클러의 API 확인해 보면 여기 파라미터 중에 설정할 수 있는 게 여러 개 있는데 그중에 멀티 클래스라는 파라미터가 있다 이렇게 돼 있고 이거 안 쓰면 디폴트로 아마 ovr을 선택하게 돼 있는데 이걸 지정하면 ovr을 하거나 혹은 앞에 소프트맥스 멀티 노미알을 하거나 이러면 선택할 수 있을 거예요.
与会者 1 19:35 是的,现在看看在有 3 个类别的情况下使用循环网络。现在我们不仅仅使用了 2 个 x 值的二维表示,还使用了 0、1 和 2 三个类别的 150 个数据。因此,如果我们显示或绘制,这些数据可能会是类别 0、类别 1 和类别 2 的数据。从这里可以看出,仅仅使用这两个 x 值可能无法很好地区分这些数据。存在一些重叠的部分。使用逻辑回归同样可以构建模型,我们提供了多类别的值。如果你查看 scikit-learn 的 API,你会发现在参数中可以设置多类别参数。如果不指定,默认会选择 one-vs-rest(OvR)方法,但你可以指定使用 one-vs-rest 或前面提到的 softmax 多项式方法。
Attendees 1 20:48
그래가지고 데이터를 피했다. 그러고 나서 얻어진 파라미터들을 우리가 찾아보면 아까는 이런 거였죠.
네 오케이 두 개의 w와 하나의 b였어요. 지금은 그런 게 하나 둘 세 개 하나 둘 세 개 있죠.
1 2 3
与会者 1 20:48 然后避开了数据。接下来,我们找到获得的参数,就像之前那样。好的,之前是两个 w 和一个 b。现在有一个、两个、三个,w 有一个、两个、三个,总共 1、2、3 个。
Attendees 1 21:15
3개의 모델을 지금 학습해서 3개의 파라미터 셋이 있는 거고
与会者 1 21:15 现在学习 3 个模型,有 3 个参数集
Attendees 1 21:27
예. 디시션 바운더리를 앞서 요 코드 그냥 그대로 써서 학습된 거나 데이터 주고 일단 그려봐라 그러면 영역을 색칠을 할 텐데 이런 결과를 볼 수가 있습니다.
클래스 제로로 떨어지는 영역 내 모델에 의해서 클래스 원으로 떨어지는 영역 2로 떨어지는 영역이 이렇게 구분된다.
ovr에 의해서 이제 합치면은 이런 형태가 된다는 걸 보여주는 거고 네 그래서 아까처럼 프라모빌리티 5개의 테스트 데이터를 가지고 한번 해보면 첫 번째 것은 이제 이게 오픈 확률 그다음에는 이게 오픈 확률 그다음에 이렇고 그다음에 별거가 이렇게 돼 그러니까 확률에 의해서 이거는 최댓값을 갖는 클래스로 이건 2다 결정하는 거고 0 0 1 1 이렇게 결정하고 있죠.
是的。就像之前那样,直接使用决策边界代码,提供数据并绘制,那么将会绘制出区域的颜色。您可以看到这样的结果。通过模型划分的类零区域,类一区域,类二区域。当使用一对多(OvR)方法合并时,就会形成这样的形态。是的,就像之前一样,对于 5 个测试数据,首先是这个开放概率,然后是那个开放概率,接着是这个,然后是那个。所以根据概率,这个类具有最大值,这就是类 2,决定为 0 0 1 1 等。
Attendees 1 22:28
주어진 실제 클래스 레이블 y 값은 보면 데이터에는 이 5개의 is에 대해서 클래스 2002 1 이렇게 답이 주어졌는데 이게 지금 하나 틀렸네요.
아마 이게 이 모델에 의해서 지금 디션 방식에 가서 보면 틀렸을 걸로 보이는 데이터가 있죠.
이런 것들이 아마 해당이 될 거예요.
出席者 1 22:28 查看给定的实际类别标签 y 值,数据中对于这 5 个 ID 的类别回答是 2002 1,但现在看起来有一处错误。可能是根据这个模型的决策方式,有些数据被判断为错误的。这些可能就是相关的情况。
Attendees 1 23:06
네 정확도 스코어 같은 거 따져보면 이제 100%가 아니게 나올 테고 틀린 것들이 이제 있을 수 있으니까.
出席者 1 23:06 是的,如果计算准确度分数,结果将不会是 100%,因为可能会存在一些错误的分类。
Attendees 1 23:19
네 그다음에 여기 마지막으로 우리가 지난 시간에도 레귤러라이제이션 얘기를 잠깐 했는데 여기서 다시 한 번 레귤러 라이제인 얘기를 드리도록 하겠습니다.
여기 지난 시간에 이미 얘기했듯이 개념은 뭐냐 하면 레귤러 라이제이션 텀이라는 걸 추가한 다음에 그것까지 포함해서 미니마이즈 하도록 함으로써 파라미터를 줄이고 그래서 오버 피팅을 방지한다 그런 거였어요.
그래서 지난번에 얘기한 게 이런 거였죠. 이런 함을 추구한다.
与会者 1 23:19 是的,接下来在这里,我们像上次一样简单地讨论了正则化,现在我将再次谈论正则化。正如上次讨论的那样,其概念是在常规化项中添加一个术语,然后通过包括它来最小化,以减少参数并防止过拟合。因此,上次我们讨论的就是这个。追求这样的函数。
Attendees 1 23:59
이 향을 추가하면 어쨌든 파라미터 더블 값들이 작은 쪽으로 갈 거고 그레디언 디센트에서 보면은 이거 이분한 이런 향이 추가되는 거다 했었죠.
레귤러 라이제이션을 위해서 추가하는 항이 이렇게 생긴 걸 수도 있어요.
앞에 건 2차 항이고 이거는 1차 항의 절대값이 있던 거죠.
이런 항을 추가해서 미니마이즈 하기로 해도 마찬가지로 w라는 파라미터는 가능한 작은 쪽을 선택하게 되겠지.
그런데 이거는 똑같이 이 그레디언티 세 앞에서처럼 미분한 양의 이제 요 항을 추가해서 미불한다는 거는 이러한 항이 지금 파라미터 업데이트할 때 그레디언트 센터에 붙는다는 건데 이거 미분하면은 요건 상수죠.
그래서 이거 w2에 대해서 미분하면 이거 그냥 1로 떨어질 거 아니에요?
그렇죠 이제 절대값이 붙어 있으니까 사인이 붙은 어떤 상수로 떨어지게 돼서 이렇게 브레디언트가 업데이트되는 식이 바뀐다는 걸 볼 수가 있어요.
이 두 개는 약간 차이가 있죠.
与会者 1 23:59 添加这个项目后,参数的双重值将趋向于较小的方向。从梯度下降的角度来看,这个项目会增加这种趋势。为了正则化,可以添加这样的项。前面的是二次项,这是一个一次项的绝对值。通过添加这样的项来最小化,w 参数仍将选择尽可能小的值。但是,就像前面的梯度一样,通过对这一项求导来添加到导数中,这意味着这个项在参数更新时会附加到梯度下降中。对此求导,这是一个常数。因此,对 w2 求导时,它将简单地降为 1,对吧?因为现在有了绝对值,它将以某个带有符号的常数形式落下,从而可以看到梯度更新方式发生了变化。这两种方式有些许不同。
Attendees 1 25:17
이거는 파라미터 값이 크면 클수록 더 많이 주는 거고 이거는 파라미터 값의 크기에 상관없이 동일한 양만큼 줄이는 효과를 줄 거예요.
参与者 1 25:17 参数值越大,给出的值就越多,而这个参数值的大小与减少的效果无关,都会减少相同的量。
Attendees 1 25:35
그러니까 결과가 좀 다를 수가 있는데 그거를 보통 이런 그림으로 이제 시각적으로 합니다.
이 두 개를 이걸 그래서 l1 타입의 레글러라이제이션이라고 얘기하고 이름은 라소라는 이름을 붙여서 이렇게 2차 식을 넣어서 미니마이즈 한 건 l2 리머레이션이라고 그러고 이건 리지라고 얘기를 했고 이게 우리가 지난 시간에 한번 봤던 거죠.
라소를 하면은 이렇게 이제 파라미터가 달라지게 되는데 이 두 개의 차이를 이런 그림으로 잠깐 의미를 따져보면 여기 있는 지금 등고선처럼 보여져 있는 게 우리의 원래 코스트 합이다.
즉 이거는 이런 지금 함수라는 것을 표현하고 있는 거죠.
그래서 아무런 레귤러 라이제이션을 안 하면 이 함수가 미니멈이 되는 포인트로 내가 만약에 예컨대 그레디언트 시트를 쭉 해나가면 네 요 값을 얻게 되겠죠.
w1은 요 값 w2는 요 값이 이 코스트가 미니멈이 되는 파라미터다를 얻겠죠.
그런데 이제 뒤에 항이 붙었단 말이에요.
参与者 1 25:35 所以结果可能会有所不同,通常我们会用这样的图形直观地展示。这就是所谓的 L1 类型正则化,取名为 Lasso,通过插入二次方程来最小化。我们之前讲过的 L2 正则化,也就是 Ridge。如果使用 Lasso,参数会发生变化。如果我们比较这两者,就像现在等高线图所显示的,这是我们原本的成本总和。这就是现在正在表示的函数。如果不进行任何正则化,通过梯度下降,我们最终会得到使该函数成本最小的点,例如 W1 取这个值,W2 取那个值,得到使成本最小的参数。但现在又添加了后面的项。
Attendees 1 26:55
항이 붙어가지고 그것도 미니마이즈 하려니까 w 값을 약간 이쪽으로 옮기는 게 합한 거는 더 최저 값이 될 수도 있다.
그런 얘기겠죠. 그래서 그게 l1과 l2가 어떻게 다른지를 보기 위해서 이런 두 개를 미니마이즈 하는 그림을 그리기는 좀 힘드니까 이런 조건이 붙었다 생각하고 한번 그림을 봐보려는 거예요.
여기 보면 l2는 우리가 지난 시간에 했던 미지라는 거는 파라미터의 제곱항들을 넣어서 같이 미니라이즈 하는 거란 말이죠.
그래서 만약에 파라미터의 제곱항이 특정한 값 이내 라고 이 정도의 작은 값이어야 된다.
혹은 조건을 만약에 붙이는 경우 어떻게 해야 되나 한번 보면 즉 파라미터는 이 영역 안에 있는 어떤 값이어야 된다.
조건으로 있다면 그러면 그 조건 하에서 코스트 함수가 최저가 되는 포인트는 이런 포인트가 될 거예요.
이 조건에 맞는 최저점 요 원과 등고선이 만나는 어떤 지점에서 가장 작은 값을 갖게 되겠죠.
与会者 1 26:55 当附加项时,为了最小化,将 w 值稍微移动到这一侧可能会得到更低的值。这就是这个意思。为了了解 l1 和 l2 的区别,绘制这两个最小化的图形有些困难,所以可以认为这里有这样的条件。看这里,l2 是我们上次讲的,就是在参数中加入平方项一起最小化。因此,如果参数的平方项应该在特定的值范围内,或者如果附加这个条件,参数应该在这个区域内。在这个条件下,使成本函数最低的点将是这样的点。在满足这个条件的情况下,最低点将出现在这个圆和等高线相交的地方。
Attendees 1 28:05
그러니까 이런 값이 우리의 이 조건 하에서의 최저점인 w 더블 제로 가는 거예요.
그게 뭐 어쨌다는 거냐? l1으로 가면 조금 생긴 게 다를 수 있다는 거예요.
l1은 똑같이 1차 파라미터들의 절대값들을 다 합친 그런 것이 똑같이 어느 정도 이내의 작은 값이어야 된다라고 조건을 주면 그러면 이제 이런 영역이네요.
그러고 이렇게 표현되는 우리 코스트 함수를 이런 조건 하에서 이런 작은 값 범위 안에서 최저를 찾아라.
그러면 이 영역을 나타낸 이 마론버골하고 호스트함스의 등고선이 만나는 지점에서 최저 될 텐데 그거는 모서리에 생기게 되겠죠.
그럼 이 경우에 이 모서리에 해당하는 건 w2는 값이지만 w1이 리콜 제로인 그런 포인트가 될 거예요.
즉 이런 조건을 줘서 같이 미니멈을 찾아나갈 때 l1의 경우는 어떤 파라미터가 쉽게 더 제로가 된다 그게 여기 써 있는 거예요.
그래서 이거는 피처 셀렉션을 하는 의미가 있다.
与会者 1 28:05 所以在这个条件下,最低点是 w 双零。这是什么意思呢?l1 可能会有些不同。l1 同样是将一阶参数的绝对值相加,如果给定在某个范围内的小值作为条件,那么就是这个区域。然后在这个小值范围内寻找成本函数的最低点。这时,标记为栗色的区域和成本函数的等高线相交的地方将是最低点,并且会出现在角落。在这种情况下,这个角落对应的是 w2 的值,而 w1 是零的点。也就是说,在给定这样的条件并寻找最小值时,l1 的情况下某些参数更容易变为零。这就是这里所写的内容。因此,这具有特征选择的意义。
Attendees 1 29:36
그러니까 만약에 내 모델이 WGL x 제로 w1 x1 w2 x2 이렇게 되는데 방금 그림에서 본 것처럼 이거 동시에 미니마이즈 하려다 보니까 0으로 떨어지는 게 쉽게 나온다.
그래서 만약에 0으로 떨어졌다면 나는 x1이라는 피처는 안 쓰는 거잖아.
내 모델에 그런 의미가 되겠죠. 자동으로 여러 개가 0으로 떨어져버리면 0이 아닌 것들만 가지고 내가 예측을 하는 셈이 되니까 피처를 셀렉션 하는 그런 얘기.
也就是说,如果我的模型是 WGL x 零 w1 x1 w2 x2,那么就像刚才图中看到的那样,同时最小化这些,很容易落到 0。所以如果落到 0,我就不使用 x1 这个特征。对于我的模型来说就是这个意思。如果自动很多都落到 0,那我就用非零的特征进行预测,这就是特征选择的意思。
Attendees 1 30:19
네 사이클론에서는 로지스틱 리그레이션의 파라미터에 c라는 이름의 파라미터가 있어요.
c는 뭐냐 하면은 이렇게 정의돼 있어요. 레귤럴라이제이션 파라미터의 역수로 정의된다는 거죠.
레귤러레이션 파라미터 라는 건 바로 이제 이거를 나타내는 건데 이 값이 크면 클수록 나는 이제 밸리바리신을 강하게 하는 거 이 작으면 작을수록 이제 하지 않는 건데 이제 여기서 정의된 라이브러리 정의된 c 값으로 표현하자면 이 값이 작을수록 이제 많이 일리버레이션 하는 거죠.
그래서 이 뒤에 이제 마지막 부분에 이거에 영향을 한번 보기 위해서 한 코드 부분이 있을 텐데 여기 다양한 c 값에 대해서 이렇게 설정해 놓고 학습 결과 파라미터 어떻게 바뀌나를 한번 플렛을 해본 거예요.
여기 보면 일로 갈수록 c 값이 작은 거죠. 거꾸로 말하면 레드럴라이징 파라미터 값이 큰 거예요.
是的,在 scikit-learn 中,逻辑回归的参数有一个叫 C 的参数。C 是这样定义的,是正则化参数的倒数。正则化参数就是指这个,值越大,我就越强调泛化能力,值越小,就越不强调。按照这个库定义的 C 值来说,值越小,正则化程度就越高。所以在后面的部分,为了看看这个的影响,会有一段代码设置不同的 C 值,看看学习结果的参数会如何变化。可以看到从左到右 C 值越来越小,反过来说,正则化参数值就越大。
Attendees 1 31:31
네 그래서 오른쪽 레딜러나이제이션을 별로 안 할 때에는 각각의 파라미터가 이게 이제 파라미터 값들이죠.
이런 건데 이 파라미터 값이 플러스는 마이너스 어쨌든 어느 정도 구분되는 큰 값이 있지만 c 값을 변화시켜서 레귤러의 레이저이 점점 커지게 되면 그들이 점점 이렇게 작아져서 0이라는 값으로 가까이 가는 걸 볼 수가 있다.
与会者 1 31:31 是的,所以当不太进行右侧正则化时,每个参数,这些现在是参数值。这是这样的,这些参数值或多或少是有区分的大值,但是通过改变 C 值,正则项会逐渐变大,它们会逐渐变小,可以看到它们接近 0 值。
Attendees 1 32:02
여기 지금 원 로소스 레스트 이렇게 해서 3개의 파라미터 세트를 지금 학습한 거잖아요.
그래서 이 각각의 파라미터 세트에 대해서 레귤러 라이제이션 효과를 한번 살펴보게 되면 마찬가지로 이게 레귤러 라이제이션을 강하게 걸수록 0에 가까운 값으로 파라멘터들이 설정이 된다 얘기를 하면
与会者 1 32:02 现在这里是 one-vs-rest,这样学习了 3 个参数集。因此,对于每个参数集,如果仔细观察正则化效果,同样,正则化强度越大,参数就会设置得越接近 0。
Attendees 1 32:41
네 그리고 이게 이제 레귤러레이션 어트리 걸었느냐에 따라서 결국은 뭐가 달라지겠어요 이게 지금 파라미터가 달라지니까 우리의 모델 즉 디시전 바운더리가 약간씩 다를 거라는 거고 그 얘기는 이제 학습된 모델로 내가 새로운 데이터 테스트 데이터를 가지고 이제 프리딕션을 했을 때 정확도가 달라질 수 있는 거죠.
모델이좀 달라지니까 그래서 어느 정도 그럼 해야 되나 이런 것을 찾거나 그래서 이제 학습 모델의 성능을 이제 좀 옵티마이즈 하고 그런 거는 이제 우리가 나중에 또 퍼포먼스에 관한 주제를 할 때 서로 다시 다루게 되는 거 어쨌든 여기서는 레귤러 라이제이션이 이렇게 다른 영향을 미친다는 걸 이해를
与会者 1 32:41 是的,这取决于是否应用了正则化,最终会有所不同。由于参数不同,我们的模型,即决策边界,会略有不同。这意味着当使用训练好的模型对新的测试数据进行预测时,准确率可能会发生变化。由于模型有所不同,所以我们需要找出应该如何处理,或者优化学习模型的性能,这些内容我们将在以后讨论性能相关的主题时再详细探讨。无论如何,在这里我们要理解正则化会产生这样的影响。
Attendees 1 33:46
네 오케이 여기까지 하겠습니다.
与会者 1 33:46 好的,就到这里吧。
clovanote.naver.com