수집 데이터 유효성 검증 방법

초록 열기/닫기 버튼

한방 설진에서 WTCI(Winkel Tongue Coating Index) 설태 평가는 환자의 설태량 측정을 위한 중요한 객관적인 지표 중의 하나이다. 그러나 이전의 WTCI 설태 평가는 혀영상으로부터 설태 부분을 추출하여 전체 혀 영역에서 추출된 설태 영역의 비율을 정량적으로 측정하는 방법이 대부분으로 혀영상의 촬영 조건이나 설태 인식 성능에 의해서 비객관적 측정의 문제점이 있었다. 따라서 본 논문에서는 빅데이터를 기반으로 하는 인공지능의 딥러닝 방법을 적용하여 설태량을 분류하여 평가하는 딥러닝 기반의 WTCI 평가 방법을 제안하고 검증한다. 설태 평가 방법에 있어서 딥러닝의 유효성 검증을 위해서는 CNN을 학습 모델로 사용하여 소태, 박태, 후태의 3가지 유형의 설태량을 분류한다. 설태 샘플 영상을 학습 및 검증 데이터로 구축하여 CNN 기반의 딥러닝 모델로 학습한 결과 96.7%의 설태량 분류 정확성을 보였다.

A WTCI is an important criteria for evaluating an mount of patient’s tongue coating in tongue diagnosis. However, Previous WTCI tongue coating evaluation methods is a most of quantitatively measuring ration of the extracted tongue coating region and tongue body region, which has a non-objective measurement problem occurring by exposure conditions of tongue image or the recognition performance of tongue coating. Therefore, a WTCI based on deep learning is proposed for classifying an amount of tonger coating in this paper. This is applying the AI deep learning method using big data. to WTCI for evaluating an amount of tonger coating. In order to verify the effectiveness performance of the deep learning in tongue coating evaluating method, we classify the 3 types class(no coating, some coating, intense coating) of an amount of tongue coating by using CNN model. As a results by testing a building the tongue coating sample images for learning and verification of CNN model, proposed method is showed 96.7% with respect to the accuracy of classifying an amount of tongue coating.


키워드열기/닫기 버튼

,

,

,

,

Tongue Diagnosis, WTCI, the amount of Tongue Coating, Deep Learning, Convolutional Neural Network

피인용 횟수

  • KCI 0회

  • 245 회 열람
  • KCI 원문 내려받기
  • 논문 인용하기
  • 서지정보 내보내기

    • txt
    • RefWorks
    • Endnote
    • XML

  • 현재 페이지 인쇄

인용현황

구성항목

관리번호, 제목(한글), 저자명(한글), 발행일자, 전자원문, 초록(한글), 초록(영문)

관리번호, 제목(한글), 제목(영문), 저자명(한글), 저자명(영문), 주관연구기관(한글), 주관연구기관(영문), 발행일자, 총페이지수, 주관부처명, 과제시작일, 보고서번호, 과제종료일, 주제분류, 키워드(한글), 전자원문, 키워드(영문), 입수제어번호, 초록(한글), 초록(영문), 목차

주요 콘텐츠로 건너뛰기

이 브라우저는 더 이상 지원되지 않습니다.

최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요.

교차 유효성 검사를 사용하여 기계 학습 모델을 학습합니다.

  • 아티클
  • 10/05/2022
  • 읽는 데 5분 걸림

이 문서의 내용

교차 유효성 검사를 사용하여 ML.NET에서 더 강력한 기계 학습 모델을 학습하는 방법을 알아봅니다.

교차 유효성 검사는 학습 데이터를 여러 파티션으로 분할하고 이 파티션에서 여러 알고리즘을 학습하는 학습 및 모델 평가 기법입니다. 이 기법은 학습 프로세스 밖에서 데이터를 유지하여 모델의 견고성을 높입니다. 보이지 않는 관찰에 대한 성능 향상 외에도, 데이터 제약 환경에서 데이터 세트가 더 적은 학습 모델에 효과적인 도구가 될 수 있습니다.

데이터 및 데이터 모델

다음 형식을 갖는 파일의 데이터를 가정합니다.

Size (Sq. ft.), HistoricalPrice1 ($), HistoricalPrice2 ($), HistoricalPrice3 ($), Current Price ($)
620.00, 148330.32, 140913.81, 136686.39, 146105.37
550.00, 557033.46, 529181.78, 513306.33, 548677.95
1127.00, 479320.99, 455354.94, 441694.30, 472131.18
1120.00, 47504.98, 45129.73, 43775.84, 46792.41

데이터는 HousingData 같은 클래스로 모델링하고 IDataView에 로드할 수 있습니다.

public class HousingData
{
    [LoadColumn(0)]
    public float Size { get; set; }

    [LoadColumn(1, 3)]
    [VectorType(3)]
    public float[] HistoricalPrices { get; set; }

    [LoadColumn(4)]
    [ColumnName("Label")]
    public float CurrentPrice { get; set; }
}

데이터 준비

데이터를 사용하여 기계 학습 모델을 빌드하기 전에 미리 처리합니다. 이 샘플 Size 에서 열과 HistoricalPrices 열은 단일 기능 벡터로 결합되며, 이 벡터는 메서드를 사용하여 호출된 Features 새 열에 Concatenate 출력됩니다. ML.NET 알고리즘에서 예상하는 형식으로 데이터를 가져오는 것 외에도, 열을 연결하면 개별 열 각각에 대해서가 아니라 연결된 열에 대해 한 번만 작업을 적용하므로 파이프라인에서 이후의 작업을 최적화합니다.

열이 단일 벡터로 결합되면 NormalizeMinMaxFeatures 열에 적용되어 같은 0-1 범위에서 SizeHistoricalPrices를 가져옵니다.

// Define data prep estimator
IEstimator<ITransformer> dataPrepEstimator =
    mlContext.Transforms.Concatenate("Features", new string[] { "Size", "HistoricalPrices" })
        .Append(mlContext.Transforms.NormalizeMinMax("Features"));

// Create data prep transformer
ITransformer dataPrepTransformer = dataPrepEstimator.Fit(data);

// Transform data
IDataView transformedData = dataPrepTransformer.Transform(data);

교차 유효성 검사를 통한 모델 학습

데이터를 사전 처리한 후에는 모델을 학습합니다. 먼저 수행할 기계 학습 작업과 가장 밀접하게 연결되는 알고리즘을 선택합니다. 예측된 값이 연속 숫자 값이므로 이 작업은 회귀입니다. ML.NET이 구현한 회귀 알고리즘 중 하나는 StochasticDualCoordinateAscentCoordinator 알고리즘입니다. 교차 유효성 검사를 통해 모델을 학습하려면 CrossValidate 메서드를 사용합니다.

참고

이 샘플에서는 선형 회귀 모델을 사용하지만 CrossValidate는 ML.NET에서 변칙 검색을 제외한 모든 다른 기계 학습 모델에 적용할 수 있습니다.

// Define StochasticDualCoordinateAscent algorithm estimator
IEstimator<ITransformer> sdcaEstimator = mlContext.Regression.Trainers.Sdca();

// Apply 5-fold cross validation
var cvResults = mlContext.Regression.CrossValidate(transformedData, sdcaEstimator, numberOfFolds: 5);

CrossValidate는 다음 작업을 수행합니다.

  1. numberOfFolds 매개 변수에 지정된 값에 부합하는 수의 파티션으로 데이터를 분할합니다. 각 파티션의 결과는 TrainTestData 개체입니다.
  2. 모델은 학습 데이터 세트에 대해 지정된 기계 학습 알고리즘 평가자를 사용하여 각 파티션에 대해 학습됩니다.
  3. 각 모델의 성능은 테스트 데이터 세트에 대해 Evaluate 메서드를 사용하여 평가됩니다.
  4. 각각의 모델에 대해 모델과 메트릭이 반환됩니다.

cvResults에 저장된 결과는 CrossValidationResult 개체의 컬렉션입니다. 이 개체는 각각 ModelMetrics 속성에서 액세스할 수 있는 학습 모델과 메트릭을 포함합니다. 이 샘플에서 Model 속성은ITransformer 형식이고 Metrics 속성은 RegressionMetrics 형식입니다.

모델 평가

다양한 학습 모델에 대한 메트릭은 개별 CrossValidationResult 개체의 Metrics 속성을 통해 액세스할 수 있습니다. 이 경우 R 제곱 메트릭이 rSquared 변수를 통해 액세스 및 저장됩니다.

IEnumerable<double> rSquared =
    cvResults
        .Select(fold => fold.Metrics.RSquared);

rSquared 변수의 콘텐츠를 검사할 경우 출력은 0-1 범위의 5개 값이며 1에 가까울수록 적합한 값입니다. R 제곱 같은 메트릭을 사용하여 가장 적합한 값에서 가장 부족한 값까지 모델을 선택합니다. 그런 다음, 최고 모델을 선택하여 예측하거나 추가적인 작업을 수행합니다.

// Select all models
ITransformer[] models =
    cvResults
        .OrderByDescending(fold => fold.Metrics.RSquared)
        .Select(fold => fold.Model)
        .ToArray();

// Get Top Model
ITransformer topModel = models[0];