Atviro kodo Python kelių pasirinkimų egzaminų skaitytuvo API
Nemokamas Python kelių pasirinkimų egzaminų skaitytuvo API, leidžiantis programinės įrangos kūrėjams generuoti egzaminų lapus, skenerius ir apdorojimo programinę įrangą per Python API.
Kas yra Open-MCR biblioteka?
Buvo sukurtas patikimas Python paketas pavadinimu Open-MCR, siekiant palengvinti daugiakanalinių konvoliucinių rekursinių neuroninių tinklų (MCRNN) diegimą. Šis atviro kodo projektas, sukurtas talentingo programuotojo Iano San, siūlo akademikams ir kūrėjams universalų ir efektyvų rėmą užduotims, tokioms kaip kalbos atpažinimas, vaizdo analizė ir įvairios laiko eilučių taikymo sritys. Naudojant jį jūsų projektuose, galima gauti patikimesnius ir tikslesnius modelio prognozes, kas galiausiai padės mašininį mokymąsi tobulinti įvairiose srityse. Open-MCR biblioteka sukurta atsižvelgiant į paprastumą. Biblioteka yra prieinama tiek pradedantiesiems, tiek patyrusiems specialistams dėl išsamios dokumentacijos ir pavyzdžių.
Mašininio mokymosi srityje daugiaklasė klasifikacija (MCC) yra populiari užduotis, kurioje tikslas – suskirstyti įvestį į iš anksto nustatytas klases. Pridėjus atmetimo parinktį, Open-MCR žengia dar vieną žingsnį į priekį ir leidžia modeliui nesugeneruoti prognozės, kai tai neaišku. Tai pagerina bendrą našumą ir ypač naudinga situacijose, kai modelio pasitikėjimo lygis yra žemas. Iš esmės Open-MCR apdoroja ir supranta sekvinę įvestį, pasinaudodamas tiek konvoliucinėmis, tiek pasikartojančiomis neuronų tinklais. Modelis yra lanksti priemonė įvairioms programoms dėl daugiakanalo dizaino, kuris pagerina jo gebėjimą atpažinti sudėtingus modelius ir ryšius. Vartotojai gali greitai įtraukti biblioteką į savo programas dėl paprasto įgyvendinimo. Biblioteka yra pasirengusi reikšmingai pažengti sekvencinių duomenų apdorojimo ir giliosios mokymosi srityse, kai ji toliau tobulės.
Pradžia su Open-MCR
Rekomenduojamas būdas įdiegti Open-MCR biblioteką yra naudojant pip. Norėdami sklandžiai įdiegti, naudokite šią komandą.
Įdiekite Open-MCR biblioteką per pip
pip install open-mcr Biblioteką galite atsisiųsti tiesiai iš GitHub
Naudokite atmetimo mechanizmą Python programose
Open-MCR išskirtinis bruožas yra atmetimo mechanizmas, kuris leidžia modeliams atsisakyti prognozės, kai susiduria su neaiškiais ar sudėtingais atvejais. Šis gebėjimas yra esminis realiose taikymo srityse, kur svarbu išvengti neteisingų prognozių. Štai pavyzdys, kuris parodo, kaip naudoti atmetimo mechanizmą vos keliais kodo eilutėmis. Sklandžiam naudojimui pirmiausia importuokite OpenMCR klasę iš bibliotekos ir inicializuokite ją su savo pageidaujamu mašininio mokymosi modeliu. Nustatykite parametrą rejection_threshold, kad kontroliuotumėte pasitikėjimo lygį, kai atliekamas atmetimas.
Kaip naudoti atmetimo mechanizmą Python programose?
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)
Skaityti ir išgauti duomenis iš vaizdų naudojant Python API
Open source Python biblioteka Open-MCR suteikė visišką palaikymą įkelti ir skaityti duomenis iš vaizdų Python programose. Norint tvarkyti egzaminus ir skaityti lapus, pirmiausia vartotojai turi nuskenuoti visus lapus naudojant standartinį skenerį. Paversti juos į atskirus vaizdus ir įdėti į vieną aplanką, įskaitant atsakymų raktus. Be nuskenuotų vaizdų skaitymo, ji taip pat gali automatiškai įvertinti egzamino rezultatus. Tai daroma palyginant pateiktus raktus su išvestimi. Kai programa baigia apdorojimą, rezultatai bus išsaugoti CSV failais jūsų pasirinktoje išvesties aplanko. Biblioteka taip pat suteikė palaikymą duomenų išgavimui, kai skaitomi šiek tiek iškraipyti vaizdai. Su naujausiu leidimu biblioteka patobulino tinklelio radimo algoritmą ir gauna geresnius rezultatus su jūsų vaizdu. Ji sukuria tinklelį remdamasi keturių kampų žymėmis ir tada skaito burbuliukus iš tinklelio vietų. Žemiau pateiktas pavyzdys rodo, kaip apskaičiuoti rezultatus naudojant Python kodą.
Kaip apskaičiuoti egzamino burbuliukų lapo rezultatus naudojant 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
Patobulintas tikslumas ir patikimumas
Atviro kodo biblioteka Open-MCR yra vertingas papildymas mašininio mokymosi specialistų įrankių rinkinyje, siekiant pagerinti jų daugiaklasės klasifikacijos modelių našumą. Atmetimo mechanizmas padidina bendrą daugiaklasės klasifikacijos modelių tikslumą, ypač situacijose, kai tradiciniai modeliai gali susidurti su sunkumais. Šis mechanizmas taip pat didina modelio patikimumą, neleidžiant jam daryti nepatikimų prognozių, užtikrinant patikimesnius rezultatus įvairiose realaus pasaulio situacijose.