1. 제품
  2.   OMR
  3.   Python
  4.   Open-MCR
 
  

오픈 소스 Python 다중 선택 시험 리더 API

무료 Python 다중 선택 시험 리더 API로, 소프트웨어 개발자가 Python API를 통해 시험지, 스캐너 및 처리 소프트웨어를 생성할 수 있게 합니다.

Open-MCR 라이브러리는 무엇인가요?

Open-MCR라는 강력한 Python 패키지는 다채널 컨볼루션 순환 신경망(MCRNNs)의 배포를 더 쉽게 만들기 위해 개발되었습니다. 재능 있는 프로그래머 Ian San이 만든 이 오픈소스 프로젝트는 학계와 개발자에게 음성 인식, 비디오 분석 및 다양한 시계열 애플리케이션과 같은 작업을 위한 다목적이고 효과적인 프레임워크를 제공합니다. 프로젝트에 이를 사용하면 보다 신뢰할 수 있고 정확한 모델 예측을 얻을 수 있어 궁극적으로 다양한 분야에서 머신러닝이 향상되는 데 도움이 됩니다. Open-MCR 라이브러리는 사용 편의성을 염두에 두고 만들어졌습니다. 포괄적인 문서와 예제가 제공되어 초보자와 숙련된 실무자 모두가 접근할 수 있습니다.

머신러닝에서 다중 클래스 분류(Multi-Class Classification, MCC)는 미리 정해진 여러 클래스 중에서 입력을 분류하는 것이 목표인 일반적인 작업입니다. 거부 옵션을 추가함으로써 Open-MCR은 한 단계 더 나아가 모델이 불확실한 경우 예측을 포기하도록 합니다. 이는 전반적인 성능을 향상시키며 특히 모델의 신뢰도가 낮은 상황에서 유용합니다. 근본적으로 Open-MCR은 합성곱 신경망과 순환 신경망의 장점을 활용하여 순차 입력을 처리하고 이해합니다. 다채널 설계를 통해 복잡한 패턴과 연관성을 식별하는 능력이 향상되어 다양한 응용 분야에 유연한 도구가 됩니다. 구현이 간단하여 사용자는 라이브러리를 자신의 애플리케이션에 빠르게 통합할 수 있습니다. 이 라이브러리는 순차 데이터 처리와 딥러닝 분야를 크게 발전시킬 잠재력을 가지고 있습니다.

Previous Next

Open-MCR 시작하기

Open-MCR 라이브러리를 설치하는 권장 방법은 pip를 사용하는 것입니다. 원활한 설치를 위해 다음 명령을 사용하십시오.

pip을 통해 Open-MCR 라이브러리 설치

 pip install open-mcr 

라이브러리를 직접 GitHub에서 다운로드할 수 있습니다.

Python 앱에서 거부 메커니즘 사용하기

Open-MCR의 가장 큰 특징은 거부 메커니즘으로, 모형이 모호하거나 어려운 사례에 직면했을 때 예측을 거부하도록 할 수 있습니다. 이 기능은 잘못된 예측을 피하는 것이 가장 중요한 실제 응용 분야에서 필수적입니다. 다음은 몇 줄의 코드만으로 거부 메커니즘을 사용하는 방법을 보여주는 예시입니다. 원활하게 사용하려면 먼저 라이브러리에서 OpenMCR 클래스를 가져와 원하는 머신러닝 모델로 초기화하십시오. 거부를 위한 신뢰 수준을 제어하려면 rejection_threshold 매개변수를 설정하세요.

Python 앱에서 거부 메커니즘을 사용하는 방법?

from openmcr import OpenMCR
from sklearn.ensemble import RandomForestClassifier

# Initialize Open-MCR with a RandomForestClassifier
model = RandomForestClassifier()
mcr_model = OpenMCR(model, rejection_threshold=0.3)

# Train the model
mcr_model.fit(X_train, y_train)

# Make predictions with rejection
predictions = mcr_model.predict(X_test)

Python API를 통해 이미지에서 데이터 읽고 추출하기

오픈 소스 파이썬 라이브러리 Open-MCR은 파이썬 애플리케이션 내에서 이미지로부터 데이터를 로드하고 읽는 완전한 지원을 제공합니다. 시험지와 답안지를 처리하려면 먼저 사용자가 표준 스캐너를 사용해 모든 시트를 스캔해야 합니다. 이를 개별 이미지로 변환하고 정답 키를 포함한 하나의 폴더에 넣습니다. 스캔된 이미지를 읽는 것 외에도 시험 결과를 자동으로 채점할 수 있습니다. 이는 제공된 정답 키와 출력 결과를 비교함으로써 이루어집니다. 프로그램이 처리를 마치면 결과가 선택한 출력 폴더에 CSV 파일로 저장됩니다. 라이브러리는 약간 왜곡된 이미지를 읽을 때 데이터 추출을 지원하기도 합니다. 최신 릴리스에서는 그리드 찾기 알고리즘이 향상되어 이미지에서 더 나은 결과를 얻을 수 있습니다. 네 모서리 표시를 기반으로 그리드를 설정한 후 그리드 내 위치에서 버블을 읽습니다. 다음 예제는 파이썬 코드를 통해 결과를 계산하는 방법을 보여줍니다.

Python API를 사용하여 시험 답안지 결과를 계산하는 방법?

import csv
import pathlib
import typing as tp

import data_exporting
import grid_info
import list_utils
import math_utils

def score_results(results: data_exporting.OutputSheet,
                  answer_keys: data_exporting.OutputSheet,
                  num_questions: int) -> data_exporting.OutputSheet:
    answers = results.data
    keys = establish_key_dict(answer_keys)
    form_code_column_name = data_exporting.COLUMN_NAMES[
        grid_info.Field.TEST_FORM_CODE]
    form_code_index = list_utils.find_index(answers[0], form_code_column_name)
    answers_start_index = list_utils.find_index(
        answers[0][form_code_index + 1:], "Q1") + form_code_index + 1
    virtual_fields: tp.List[grid_info.RealOrVirtualField] = [
        grid_info.VirtualField.SCORE, grid_info.VirtualField.POINTS
    ]
    columns = results.field_columns + virtual_fields
    scored_results = data_exporting.OutputSheet(columns, num_questions)

    for exam in answers[1:]:  # Skip header row
        fields = {
            k: v
            for k, v in zip(results.field_columns, exam[:answers_start_index])
        }
        form_code = exam[form_code_index]
        try:
            if "*" in keys:
                key = keys["*"]
            else:
                key = keys[form_code]
        except KeyError:
            fields[grid_info.VirtualField.
                   SCORE] = data_exporting.KEY_NOT_FOUND_MESSAGE
            fields[grid_info.VirtualField.
                   POINTS] = data_exporting.KEY_NOT_FOUND_MESSAGE
            scored_answers = []
        else:
            scored_answers = [
                int(actual == correct)
                for actual, correct in zip(exam[answers_start_index:], key)
            ]
            fields[grid_info.VirtualField.SCORE] = str(
                round(math_utils.mean(scored_answers) * 100, 2))
            fields[grid_info.VirtualField.POINTS] = str(sum(scored_answers))
        string_scored_answers = [str(s) for s in scored_answers]
        scored_results.add(fields, string_scored_answers)

    return scored_results

향상된 정확도와 견고성

오픈 소스 Open-MCR 라이브러리는 다중 클래스 분류 모델의 성능을 향상시키려는 머신러닝 실무자들의 도구 모음에 귀중한 추가 요소입니다. 거부 메커니즘은 특히 기존 모델이 어려움을 겪을 수 있는 상황에서 다중 클래스 분류 모델의 전체 정확도를 높이고 향상시킵니다. 이 메커니즘은 신뢰할 수 없는 예측을 방지함으로써 모델의 견고성을 높여 다양한 실제 시나리오에서 보다 신뢰할 수 있는 결과를 보장합니다.

 한국인