시간에 따라 변화하는 곡선을 여러 범주로 분류해야 하는 경우가 종종 있습니다. 예를 들어, 세포 성장 곡선은 세포의 성장 양상을 특징짓는 다양한 형태(예: 이중 성장)를 가질 수 있습니다. 이러한 다양한 곡선 유형 때문에 성장 시작까지의 지연 시간, 성장 속도, 최종 성장 수준 등과 같은 특징적인 매개변수를 곡선에서 자동으로 정확하게 추출하는 것이 어렵습니다.
JMP Pro의 기능 데이터 탐색기(FDE)를 사용하면 이러한 곡선을 특정 유형으로 분류할 수 있습니다. 분류가 완료되면 FDE는 곡선에서 노이즈를 제거하여 중요한 성장 매개변수를 평가하는 과정을 크게 간소화합니다.
JMP Pro의 FDE가 이러한 작업을 수행하는 방법을 보여주기 위해 실제 데이터가 사용됩니다.
안녕하세요. 제 이름은 제리 피시입니다. 이번 발표에서는 제 동료인 카일 프로브스트와 함께 함수형 데이터 탐색기를 사용하여 곡선 모양을 분류하는 방법에 대해 이야기해 보겠습니다. 저는 JMP에서 7년째 근무하고 있으며, 중서부 지역 고객들을 지원하고 있습니다. 중서부 지역에 계시다면 언제든 연락 주세요. JMP 관련 문의 사항이 있으시면 기꺼이 도와드리겠습니다.
이것은 우리가 특성화하려는 전형적인 곡선입니다. 오늘 카일이 이에 대해 좀 더 자세히 설명해 줄 것입니다. 우리가 이야기할 것은 세포 성장 곡선입니다. 성장 곡선은 세포에 특정 영양분을 공급했을 때, 예를 들어 그 세포들이 얼마나 빨리 성장하는지와 관련이 있습니다. 곡선은 대략 이와 같을 수 있습니다. 처음에는 성장이 전혀 없다가 갑자기 세포가 성장하기 시작하고, 마지막에는 여기서 평탄해집니다. 이것이 전형적인 곡선입니다. 카일은 중요한 매개변수에 대해 간략하게 설명해 줄 것입니다.
문제는 우리가 분류해야 할 다양한 종류의 곡선이 있다는 것입니다. 왼쪽 위는 방금 보여드린 곡선입니다. 이것을 단상 곡선이라고 부르겠습니다. 이 곡선은 단일 성장 패턴을 보인 후 그 상태가 유지되므로 세포는 계속해서 생존합니다. 오른쪽 위 곡선도 단상 곡선입니다. 이 곡선 역시 한 번의 전환기를 거치지만, 마지막 부분에서 세포가 죽기 시작하면서 성장이 멈추는 경향을 보입니다. 어쩌면 이 점이 중요할 수도 있고, 여러분의 사업에서는 핵심적인 특징일 수도 있습니다.
우리는 이것을 두 개의 성장 영역을 가진 이중성장형이라고 부릅니다. 첫 번째 영역에서는 성장이 정체되고, 그 후에 두 번째 성장 영역이 나타납니다. 마지막으로, 성장이 전혀 없는 경우도 있는데, 물론 우리는 그런 경우에도 관심을 가질 것입니다.
이런 테스트 결과가 수백 개에 달할 수 있는데, 하나하나 일일이 검토하고 싶지는 않습니다. 각 곡선이 어떤 형태인지 안다면, 예를 들어 이 곡선은 JMP의 Fit Curve 기능을 이용해 모델링할 수 있습니다. 또 다른 곡선, 즉 이 성장 곡선은 비선형 플랫폼에서 모델링하는 것이 더 적합할 수 있습니다. 비선형 플랫폼에서는 곡선 형태를 더욱 유연하게 표현할 수 있기 때문입니다. 모든 곡선을 일일이 살펴보고 어떤 기능을 적용할지 결정하는 것은 비효율적입니다. 가능하다면 이 시스템을 자동화하고 싶습니다.
이제 카일에게 마이크를 넘겨서 자기소개를 하고, 이 곡선에 대해 간략하게 설명하고, 왜 이것이 중요한지, 그리고 우리가 무엇을 하고 있는지에 대한 배경 이야기를 들어보도록 하겠습니다. 카일?
제리, 감사합니다. 멋진 소개였습니다. 제리가 언급했듯이, 저희 케리에서는 제약 세포 영양 사업부에서 미생물 성장 평가에 많은 노력을 기울이고 있습니다. 간단히 제 소개를 드리자면, 저는 카일 프로브스트입니다. 케리 북미 본사(위스콘신주 벨로이트 소재)에서 선임 과학자로 근무하고 있습니다. 저는 미생물, 포유류 세포 및 기타 세포에 단백질 가수분해물, 효모 추출물 등의 영양분을 공급하는 세포 영양 사업부를 지원하고 있으며, 이러한 제품들은 생명 구조 의약품 생산을 위해 바이오 제약 산업에서 널리 사용되고 있습니다.
제리가 여기서 사용하는 데이터는 저희 연구실에서 흔히 수행하는 특정 분석법에서 얻은 것입니다. 이는 고처리량 스크리닝에서 얻은 데이터로, 마이크로플레이트 판독기를 사용하여 미생물 성장 곡선을 측정합니다. 제리가 보여주는 것과 같은 방식이죠. 측정하는 성장은 주로 600나노미터에서의 광학 밀도(OD600)를 이용하는데, 이는 성장과 밀접한 관련이 있습니다. 탁도를 측정하는 간단한 방법이며, 미생물 성장을 정량화하는 데 업계에서 표준적으로 사용되는 지표입니다.
저희는 특정 핵심 성과 지표(KPI)를 기반으로 최적의 원료를 비교하고 선택하기 위해 성장 곡선을 활용합니다. 이러한 성장 곡선에서 측정하고 정량화하고자 하는 주요 KPI에는 성장률, 지연 시간, 최종 세포 밀도 등이 있습니다. 제리가 현재 진행하고 있는 작업은 이러한 곡선에서 얻은 정량적 값을 자동으로 추출하는 시스템을 구축하는 것입니다. 이를 통해 저희가 일일이 데이터를 분석하는 번거로움을 줄이고 최적의 결과를 얻을 수 있도록 하는 것입니다.
이것이 우리가 표준적인 방법을 사용할 때 직면했던 가장 큰 어려움 중 하나였습니다. 항상 완벽하게 일치하는 결과를 얻을 수 있는 것은 아니며, 곡선의 모양에 따라 결과가 달라집니다. 안타깝게도, 이 시연에서 보여주는 것처럼 모든 곡선이 완벽한 단상 곡선은 아닙니다. 바로 이러한 이유로 제리가 이 작업을 돕는 데 관심을 갖게 된 것입니다.
자, 여기 보이는 곡선에서, 그리고 제가 설명해 드리겠지만, 우리가 흔히 관심을 갖는 KPI는 다음과 같습니다. 첫째, 지연 시간입니다. 지연 시간은 세포가 성장을 시작하기 전에 휴면 상태로 있는 시간입니다. 이는 우리가 이해해야 할 중요한 부분입니다. 둘째, 변곡점 도달 시간입니다. 이는 세포가 최대 성장 속도에 도달하는 시간입니다. 그리고 변곡점에서의 기울기가 바로 최대 성장 속도입니다. 이것 또한 우리가 측정하는 중요한 매개변수입니다. 마지막으로, 최종 점근선은 최종 세포 밀도, 즉 달성된 세포 밀도를 나타내며, 이는 모든 미생물의 성장과 관련이 있습니다.
이러한 작업을 진행하기 전에 먼저 원시 데이터를 그래프로 나타낼 수 있는 형식으로 처리해야 합니다. 이렇게 하면 시각적 비교를 하거나, 제리가 지금 보여주는 것처럼 그래프를 정량화하여 비교하기가 더 쉬워집니다. 제가 발표했던 다른 논문에서 원시 데이터를 처리하는 방법과 JMP의 유용한 도구를 활용하는 방법에 대해 설명했습니다.
저처럼 스크립팅 초보자라도 시간을 많이 절약하고 효율적인 방법을 찾을 수 있었습니다. 이 글은 "미생물 성장 특성 분석 자동화를 위한 JMP 추가 기능 빌더"라는 제목으로 작성되었으니 꼭 한번 확인해 보세요.
제리, 다시 당신 차례예요. 저는 이쯤에서 충분히 얘기한 것 같네요. 아마 당신보다 훨씬 더 많이 얘기했을 거예요.
완벽하네요.
고마워, 제리.
완벽하네요, 카일. 배경 설명을 해주셔서 감사합니다. 카일의 주 저자가 발표한 논문을 찾아보시면, 이 형식의 데이터에 대해 어떤 전처리 작업을 했는지, 예를 들어 모든 값을 0에서 시작하도록 조정하고, 임의로 30시간에서 데이터를 잘라내는 등의 작업을 어떻게 했는지 알 수 있을 겁니다. 감사합니다, 카일.
카일과 케리가 분석할 수 있도록 이 데이터 세트에 약 330개의 곡선을 제공해 주었습니다. 저는 이 곡선들을 육안으로 분류하여 어떤 그룹으로 나뉘는지 살펴보았습니다. 위에 있는 모든 곡선들을 '단상 지속형'이라고 명명했는데, 이는 곡선이 상승하다가 어떤 점근값에 도달하는 형태입니다. 또 다른 곡선들은 '단상 소멸형'이라고 명명했는데, 이는 곡선이 상승하여 정점에 도달한 후 급격히 감소하는 형태를 보입니다. 감소 정도는 곡선에 따라 다소 불규칙적이지만, 데이터에 약간의 변동이 있는 경우도 있습니다. 다소 특이한 양상이지만, 저는 이 모든 곡선들을 '단상 소멸형'으로 분류했습니다.
이것들을 저는 이중성장형으로 분류했습니다. 모든 곡선은 성장기, 점근선, 그리고 다시 성장기가 이어집니다. 그 차이가 미묘할 수도 있고, 클 수도 있지만, 어쨌든 이것들은 이중성장형입니다. 그리고 물론, 이쪽은 성장이 없는 곡선들입니다.
데이터를 살펴보고 데이터에 대한 몇 가지 정보를 얻고, FDE(Functional Data Explorer)를 어떻게 활용할 수 있는지 알아보겠습니다. FDE는 JMP Pro 기능입니다. 앞으로 설명할 도구들은 대부분 JMP Pro 도구입니다. 데이터 자체를 보면, 여기 테스트 번호가 있는 열이 있습니다. 테스트 번호는 1_1입니다. 여기는 시간입니다. 아래로 30시간까지 내려가면 OD600 열에 데이터가 수집된 것을 볼 수 있습니다. 제가 개인적으로 확인한 바로는 이 첫 번째 데이터는 증가가 없는 데이터 세트입니다.
그게 바로 그런 상황입니다. 테스트 1_1이 있고, 그 다음이 1_2이고, 이런 식으로 계속됩니다. 이 데이터 세트에는 약 4만 개의 행이 있고, 그 안에 약 330개의 서로 다른 테스트가 포함되어 있습니다.
여기 '검증'이라는 열도 있습니다. JMP Pro에서는 모델 검증 옵션을 사용할 수 있습니다. FDE에서 검증의 의미는 다른 JMP 플랫폼에서와는 약간 다릅니다. 이 부분은 나중에 자세히 설명드리겠습니다. 우선 이 검증 열을 어떻게 설정하는지 간단히 보여드리겠습니다. [분석] > [예측 모델링] > [검증 열 만들기]를 선택하면 됩니다.
자, 이제 JMP에게 먼저 그룹화 열을 지정해야 합니다. 모든 1:1 데이터는 훈련 데이터와 검증 데이터로 그룹화하고 싶습니다. 특정 테스트 내에서 훈련 데이터와 검증 데이터가 섞이는 것을 원하지 않습니다. 이를 위해 테스트 번호를 그룹화 열로 지정하면 됩니다. 또한 훈련 세트와 검증 세트 각각에 무성장, 단상 사멸, 단상 지속 성장, 이배성장 곡선이 동일한 수 또는 비율로 포함되도록 하고 싶습니다. 이를 층화라고 합니다. 제 유형을 층화 열에 지정하면 됩니다.
그다음에는 여기서 지정합니다. 저는 실행의 60%를 훈련 세트에서, 나머지 40%를 검증 세트에서 수행하도록 선택했습니다. 그런 다음 "시작"을 클릭하면 이 열이 표시되는데, 이 열에는 약 60%의 실행이 훈련 세트에서, 40%의 실행이 검증 세트에서 수행된 결과가 나와야 합니다.
자, 이제 방금 만든 열을 삭제하겠습니다. 이 열은 실행마다 훈련 데이터와 검증 데이터를 무작위로 할당하는데, 첨부된 논문에 나와 있는 분석에 사용한 것과 동일한 실행 결과를 사용하고 싶습니다. 방금 만든 열을 삭제하겠지만, 이 열은 이런 식으로 생성된 것입니다.
이제 기능 데이터 탐색을 시작할 준비가 되었습니다. 분석, 특수화, FDE를 선택합니다. 여기서는 JMP에 각 열의 의미를 설명해야 합니다. 테스트 번호는 ID이고, 시간은 X 변수입니다. OD는 세포 성장 측정값으로 Y 출력입니다. 유형은 보조 변수로 추가하겠습니다. 이번 분석에서는 사용하지 않고 나중에 포함할 것입니다. 지금은 그냥 추가해 두는 것입니다. 그런 다음 유효성 검사를 입력하고 확인을 누릅니다.
여기 함수 데이터 탐색기 창이 있습니다. 맨 위 그래프는 모든 곡선을 겹쳐 놓은 것입니다. 이 그래프를 펼치면 아래쪽에 개별 곡선들이 모두 표시됩니다. 함수 데이터 탐색기에서 가장 먼저 해야 할 일은 각 데이터 곡선에 함수를 맞추는 것입니다. 빨간색 핫스팟으로 표시된 '모델' 아래에서 이 작업을 수행할 수 있습니다. B-스플라인, P-스플라인, 푸리에 변환, 웨이블릿 등 다양한 옵션 중에서 선택할 수 있습니다.
저는 B-스플라인을 사용하겠습니다. 이해하기 비교적 간단하죠. 하지만 P-스플라인을 사용해도 아무 문제 없습니다. 푸리에 기저는 아래 신호들이 각각 반복되는 특징을 가질 때 사용합니다. 웨이블릿은 이러한 데이터, 특히 날카로운 피크가 있는 스펙트럼 데이터를 피팅하는 데 매우 효과적이며, 점점 더 인기를 얻고 있습니다. 웨이블릿은 이런 경우에 아주 적합합니다. 하지만 오늘은 B-스플라인에 대해서만 설명하겠습니다.
JMP는 두 가지 작업을 수행합니다. 먼저 모든 데이터를 분류하고 두 가지 매개변수를 선택합니다. 그중 하나가 차수입니다. 차수는 계단 함수이거나 선형 구간, 2차 구간 또는 3차 구간과 같은 일련의 구간으로, 이 신호를 스플라인으로 분할하는 데 사용됩니다.
이제 스플라인은 매듭이라고 불리는 것들 사이에 맞춰집니다. JMP가 결정하는 또 다른 중요한 요소는 바로 이 매듭의 개수와 위치입니다. 이렇게 하면 아래 함수들을 가장 잘 맞출 수 있습니다. 이 경우 JMP는 17개의 매듭을 가진 3차 스플라인을 선택했습니다. 이 값은 사용자가 직접 조정할 수 있습니다. 더 나은 결과를 얻기 위해 변경해 보겠지만, JMP가 자동으로 생성한 이 스플라인을 그대로 사용하겠습니다.
JMP는 이 데이터를 어떻게 처리할까요? 우선, 전체 평균 곡선을 계산합니다. 이것은 방금 살펴본 모든 곡선의 평균입니다. 이러한 곡선들을 형상 함수라고 하며, 고유 함수라고도 합니다. 만약 형상 함수 1에 곱해지는 계수가 +2이고, 형상 함수 2에 곱해지는 계수가 -1이며, 형상 함수 3에 곱해지는 계수가 -1이고, 형상 함수 4에 곱해지는 계수가 -5라고 가정해 봅시다. 이렇게 각 함수에 곱해지는 계수들을 모두 더하고, 평균 함수에 더하면 위에 보이는 곡선이 나타날 것입니다.
문제는 이러한 곡선들을 재구성하기 위해 각 함수 앞에 붙는 계수가 무엇이냐는 것입니다. 각 곡선이 다르기 때문에 계수도 달라지는데, 이를 함수 주성분(FPC, Functional Principal Component, FPC) 1, 2, 3, 4라고 합니다. 이 경우 JMP는 "각 곡선을 특징짓기 위해서는 4개의 함수 주성분이 필요합니다."라고 말합니다.
자, 좀 복잡하지만 핵심은 이 네 가지 계수가 이 곡선의 특징을 나타낸다는 것입니다. 저는 이 네 가지 계수와 3차 스플라인 적합, 그리고 스플라인 분할에 17개의 매듭점이 있다는 정보를 함께 활용할 겁니다. 이 모든 정보를 알면, 곡선 1은 성장이 없는 곡선이고, 곡선 2는 성장이 없는 곡선이고, 곡선 2_1은 성장이 없는 곡선이라는 것을 재구성할 수 있습니다.
자세히 보시면—좀 더 크게 보여드리겠습니다—여기 원본 데이터와 적합 데이터가 나와 있습니다. 원본 데이터는 검은색입니다. 여기에서 조금 보실 수 있습니다. 잘 보이시죠? 빨간색 데이터는 스플라인 적합 데이터입니다. 보시다시피, 모든 곡선을 아주 잘 맞춰주고 있습니다.
모델링을 계속하려면 이러한 기능적 주성분이 필요하므로 빨간색 핫스팟을 클릭하고 요약을 저장하겠습니다. 그러면 각 테스트에 대해 한 행씩 있는 새 데이터 테이블이 생성됩니다. 여기 1_1, 테스트 번호 1_1이 있습니다. 저는 이 테스트를 성장 없음으로 식별했으므로 유형을 보조 변수로 유지합니다. 최종 결과가 여기에 나타납니다. 제 눈에는 성장이 없는 곡선으로 보입니다. 이 테스트는 검증 세트가 아닌 훈련 세트에 있었습니다. 다음은 해당 테스트에 대한 처음 네 개의 주성분입니다.
그다음에는 각 곡선의 평균, 표준 편차, 중앙값 등 여러 가지 정보가 있습니다. 이러한 정보도 유용할 수 있지만, 오늘 발표에서는 다루지 않겠습니다. 이 모든 정보를 삭제하고, 이 네 개의 그래프만 남기겠습니다.
각 테스트마다 하나씩 있고, 각각이 무엇인지 눈으로 직접 평가하고 있습니다. 그리고 여기에는 '훈련'이라고 적힌 열이 있습니다. 더 아래로 내려가면, 여기 어딘가에 유효성 검사 행들이 있습니다.
이제 문제는 "방금 알아낸 FPC를 이용해서 유형을 예측하는 모델을 만들 수 있을까?"입니다. 만약 만들 수 있다면 정말 좋겠죠. 우리가 알아야 할 것은 새로운 곡선이 들어올 때 "FPC가 무엇인가?"입니다. 이 FPC를 마법의 공식에 대입하면 유형을 예측할 수 있을 겁니다.
JMP Pro를 사용하고 있고 FDE를 활용하고 있으므로 JMP Pro에 접근하여 모델 스크리닝이라는 기능을 사용할 수 있습니다. 여기서 Y 응답 변수는 유형입니다. 유형을 예측할 수 있는지 확인하고 싶습니다. 아래쪽에 검증 기능을 추가하겠습니다. X 입력 변수로는 FPC를 사용하겠습니다. 모델 스크리닝 도구를 사용하면 JMP Pro가 여러 모델을 실행하고 비교하여 어떤 모델이 예측 성능이 가장 좋은지 보여줍니다.
자, 이제 몇 가지를 추가하겠습니다. 일부 모델은 양방향 상호작용과 이차항을 허용하므로, 그것들을 추가하겠습니다. 또한 논문의 결과와 일치하도록 난수 시드를 2, 3, 4, 5로 설정하겠습니다. 보통은 이렇게 설정하지 않고 JMP가 임의의 시드를 계산하도록 둡니다. 이제 확인을 누르겠습니다.
이제 JMP는 각 모델을 실행하고 비교합니다. 아래는 실행된 모든 모델을 평균 제곱근 오차(RASE) 순으로 정렬한 비교 결과입니다. 최소 RASE를 기록한 모델은 신경망 부스팅 모델이며, 공교롭게도 JMP Pro 모델이기도 합니다. 의사결정 트리나 명목 로지스틱 회귀 모델과 같은 일부 모델은 JMP에서 기본적으로 제공하는 모델이지만, 신경망 부스팅 트리는 좋은 성능을 보여줍니다. 또한 오분류율은 5%로, 모든 모델 중에서 가장 우수한 결과입니다. 이에 대해서는 잠시 후에 자세히 살펴보겠습니다.
이제 신경망 부스팅 모델을 실행해서 결과를 살펴보겠습니다. 여기 결과가 있습니다. 혼동 행렬에 대해 이야기했었죠. 왼쪽은 훈련 데이터에 대한 것이고, 오른쪽은 검증 데이터에 대한 것입니다. 검증 데이터만 살펴보겠습니다.
제가 실제로 어떤 실험이 이중성장(diauxic)이라고 말했을 때, 신경망 강화 모델은 이중성장이라고 8번 예측했습니다. 또한 단상 지속형(monophasic sustained)이라고 1번 예측했습니다. 총 9번 중 제가 한 번 잘못 예측한 셈입니다. 혼동 행렬에서 볼 수 있듯이, 이상적인 결과는 모든 수치가 주 대각선에 위치하는 것입니다. 몇몇 수치가 원하는 수준에 미치지 못하는 것을 확인할 수 있습니다. 모델이 완벽하지는 않지만 상당히 우수합니다. 95%의 성공률을 보이고 있습니다.
개수 대신 분수로 보고 싶으시다면, 이 표가 바로 그겁니다. 그리고 아래쪽에는 여러분이 잘 알고 계실지도 모르는 수신자 조작 특성 곡선이 있습니다. 흥미롭지만, 저희도 몇 가지 실수를 합니다. 그 실수들에 대해 말씀드리자면… 잠시만 실례하겠습니다. 어떤 실수에 대해 이야기해야 할지 알기 위해 관련 수치를 확인해야 합니다.
다시 돌아가서, 여기… 자, 봅시다. 저는 단상성 사망을 예측했는데, 제 알고리즘, 그러니까 신경망 강화 알고리즘은 세 번이나 이상성 사망이라고 했습니다. 39번은 맞췄고, 3번은 이상성 사망이라고 했습니다. 그 세 번의 시도를 살펴보죠.
메인 데이터 세트로 돌아가서, 그래프 빌더를 불러오는 스크립트를 실행해 보겠습니다. 여기 모든 곡선이 겹쳐져 있습니다. 저는 특히 124_2, 144_2, 176_2 곡선을 원합니다. 처음 이 곡선들을 살펴볼 때, 육안으로 봤을 때 이 세 곡선은 단상성이라고 판단했습니다. 최고점을 찍은 후 서서히 감소하는 형태였죠. 크게 감소하지는 않았지만, 저는 이러한 곡선들을 단상성 감소라고 특징지었습니다.
루틴에서 "아니요, 이 세 곡선은 이배수성 곡선입니다."라고 했습니다. 좀 더 자세히 살펴볼까요? 여기 녹색 곡선이 나오는데, 확실히 저기에 약간의 굴곡이 있습니다. 제가 눈으로는 놓쳤지만, JMP는 "이건 이배수성 곡선인 것 같습니다."라고 말했습니다. 이게 중요한 걸까요? 잘 모르겠습니다. 카일의 업계 전문가에게 물어봐야 할 것 같습니다. 어쨌든 JMP는 이 곡선을 골라내서 "아니요, 이건 이배수성 곡선인 것 같습니다."라고 했습니다.
이 두 곡선을 보면, 맨 뒤쪽부터 성장이 시작되다가 정체되고, 그 뒤에 더 큰 성장 곡선이 나타납니다. 아마도 이 두 곡선은 이배성장(diauxic)을 나타내는 것 같습니다. 어쩌면 JMP 프로그램이 제가 눈으로 보는 것보다 더 정확하게 분석하고 있는지도 모르겠습니다.
여기 또 다른 곡선이 있습니다. 60_2번 곡선입니다. 어디 있죠? 여기 있습니다. 제가 말씀드렸듯이 이 곡선은 단상 소멸 곡선입니다. 맞습니다. 곡선이 상승했다가 여기서 다시 하락합니다. 다시 성장하기 시작하다가 멈춥니다. 측정 장비의 해상도 한계까지 매우 계단식으로 변화하는 것을 눈치채셨을 겁니다. 요점은 이 부분이 스케일의 아주 작은 부분이라는 것입니다. 이 곡선은 제대로 성장조차 시작하지 못했습니다. 그래서 JMP는 "아니요, 이것은 성장이 없는 곡선입니다."라고 판단했습니다. 꽤 정확한 결과입니다. JMP가 이 부분을 놓쳤지만, 너무 작아서 실제로 감지하기 어려웠기 때문입니다. 흥미로운 결과라고 생각합니다.
이제 모델이 생겼습니다. 보세요, 그래프 빌더를 닫을 수 있죠. 이 신경망 부스팅 모델을 사용하면 오분류율을 살펴볼 수 있습니다. 그런데 새로운 데이터가 생기면 어떻게 해야 할까요? 앞서 말씀드리지 않았던 게 있는데요, 원래 데이터셋의 190번째 행, 아, 여기 있네요. 191번째 행에 있는 데이터는 숨기고 제외하려고 했는데, 괜찮습니다. 제외된 데이터니까요.
191_2 실행에 포함된 이 데이터가 새로운 데이터라고 가정해 보겠습니다. 이 데이터는 이전 실행, 즉 이전 분석에는 포함되지 않았습니다. '일치하는 세포'를 선택하고 지우겠습니다. 어디 보자. 이제 같은 과정을 반복해 보겠습니다. 알고리즘 입장에서는 이제 이 데이터는 새로운 데이터입니다. 어쨌든 육안으로 봤을 때는 단상성 사멸입니다. JMP가 이 데이터를 어떻게 처리하는지 살펴보겠습니다. 어떻게 접근할까요? 같은 과정을 반복하겠습니다.
제가 주의해야 할 한 가지는 특수 모델링 FDE를 수행할 것이기 때문에 모든 학습 데이터가 원래 상태 그대로 남아 있는지 확인하는 것입니다. 여기서 '리콜'을 누르겠습니다. 설정은 모두 동일합니다. '확인'을 누르고 동일한 B-스플라인 적합을 수행하겠습니다. 이렇게 하면 여기에서 정확히 같은 결과가 나오므로 적합은 학습 실행에만 기반한 것입니다.
자, 제가 여기서 얻어야 할 건 바로 이 기능 요약, 즉 FPC(기능 주성분)입니다. 이걸 얻어야 하는데… 어디 갔더라? 아, 저기 아래쪽에 있네. 191_2. 이 기능 주성분이 필요해요. 이걸 알면 신경망 공식에 대입해서 예측값을 얻을 수 있거든요. 이걸 복사해서 붙여넣는 대신, 그냥 '요약 저장'을 다시 해야겠어요.
그럼 이제 맨 아래로 내려가서 191_2, 바로 이 행에 있는 이 네 숫자를 선택하겠습니다. 이 숫자들은 새로운 실험의 기능적 주성분입니다. 복사해서 붙여넣겠습니다. Ctrl+C. 아, 그런데 뭔가 빼먹었네요. 단계를 하나 빼먹었어요. 이 모델을 만든 후에는 저장도 해야 합니다. 수식을 데이터 테이블에 저장하겠습니다. 이제 데이터 테이블에 (어디로 저장되었든 간에) 열이 많이 추가되었네요.
이게 우리가 처음에 가지고 있던 네 개의 FPC였고, 이제 오른쪽에 추가 열들이 생겼습니다. 이 열들에는 신경망 공식이 들어 있습니다. 각 열에는 간단한 계산기가 있고, 여기서는 각 곡선 유형의 확률을 계산하여 그룹화합니다. 마지막으로, 가장 가능성이 높은 유형이 최종 결과로 나타납니다.
제가 해야 할 일은 191_2에 해당하는 이 숫자들을 복사해서 다시 이 데이터 세트로 돌아오는 것입니다. 맨 아래로 내려가면 191_2가 보일 겁니다. 이건 새로운 데이터 세트라서 저는 보통 이게 뭔지 알지 못합니다. 그냥 이 숫자들을 여기에 붙여넣으면 JMP가 여러 열을 분석해서 최종적으로 단상성 소멸 데이터 세트라고 알려줍니다. 실제로도 그랬습니다. 제가 직접 눈으로 확인했을 때도 그랬고요. 아마 원하는 만큼 새로운 데이터 세트를 만들어서 기능적 주성분을 계산할 수 있을 겁니다. 이제 이 주성분들을 여기에 붙여넣으면 끝입니다.
저널로 돌아가서 마무리해 보겠습니다. 요약하자면, JMP Pro의 다른 모델링 도구와 결합된 Functional Data Explorer를 사용하여 곡선의 특성을 파악할 수 있다는 것입니다. 저는 95%의 정확도를 달성했지만, 향후 정확도를 더욱 향상시킬 수 있는 여지가 있습니다. 이러한 모델링 프로세스를 활용하면 새로운 곡선 유형을 예측하여 시간을 절약하고 오류를 방지할 수 있으며, 모든 단계는 첨부된 논문에 자세히 설명되어 있습니다.
각각에 대한 가능한 모델은… 아, 죄송합니다. 슬라이드 순서가 좀 뒤죽박죽이네요. 향후 연구를 위한 제안으로는 성장이 없는 데이터를 미리 선별하는 것이 있습니다. OD600 값이 0.05 미만이면 성장이 없는 것으로 간주하여 제외하면 됩니다. 그런 데이터는 고려할 필요조차 없습니다.
다양한 유형의 스플라인, 다양한 복잡성, 다양한 매듭 개수를 실험해보고, 이 모든 단계를 자동화하는 스크립트를 만들어 보세요. 충분히 그렇게 할 수 있을 것 같습니다. 그렇게 하면 작업 속도를 크게 향상시킬 수 있을 겁니다.
자, 이제 이러한 곡선들을 얻었다면, 우리가 보여드린 첫 번째 곡선처럼 단상 지속형 곡선의 경우, JMP의 곡선 맞춤 플랫폼을 사용하여 분석할 수 있습니다. 그러면 다음과 같은 방정식이 생성되고, 이 방정식에서 A, B, C 매개변수에 대한 지연 시간, 최대 성장률, 그리고 점근선을 추출할 수 있습니다.
만약 이중성장 곡선이 있다면 이렇게 할 수 있습니다. 실제로는 단상 성장 곡선 두 개를 합친 것과 같습니다. JMP의 비선형 플랫폼을 사용하여 이를 해결할 수 있습니다. 성장이 없다는 것은 앞서 말했듯이 제한값을 설정하는 것입니다. 실행 과정의 모든 지점에서 OD600이 0.05 미만이면 성장이 없다고 판단하면 됩니다.
단상 소멸의 경우, 여러 가지 방법이 있을 수 있겠죠. 제가 사용한 방법 중 하나는 점근선에 접근하는 원래의 단상 지속 곡선에 시간의 함수로 감소하는 선형 함수를 곱하는 것입니다. 그러면 곡선 뒤에 기울기가 생깁니다. 다시 말하지만, 비선형 해석기가 M, A, B, C 값을 계산하도록 하면 됩니다.
이것으로 오늘 방송을 마치겠습니다. 말씀드린 대로 모든 단계가 담긴 PDF 파일을 함께 제공해 드리겠습니다. 유용하게 활용하시길 바랍니다. 공동 진행자 카일에게 진심으로 감사드립니다. 다음 시간에 또 뵙겠습니다. JMP와 함께 즐거운 시간 보내세요!