Utilizarea puterii tehnologiei.net: un ghid cuprinzător pentru clasificarea învățării automate printr -o API

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

În lumea de astăzi bazată pe date, sarcinile de clasificare a învățării automate sunt omniprezente în diverse domenii. În timp ce construirea și implementarea modelelor de învățare a mașinilor poate fi complexă, API -urile oferă o modalitate convenabilă de a folosi capacități puternice de clasificare, fără a fi nevoie de o configurație sau infrastructură extinsă.

Această postare pe blog demonstrează cum să utilizați API -ul de clasificare a învățării automate oferite de techtonique.net (știrile sunt în noul blog al API -ului) folosind trei metode diferite:

  1. răsuci -Pentru utilizatorii liniei de comandă și scripturile shell
  2. Cereri Python – Pentru dezvoltatorii Python
  3. R httr – Pentru utilizatorii R
  4. Excela – Pentru utilizatorii Excel

Vom parcurge exemple folosind două seturi de date clasice:

  • Setul de date IRIS pentru clasificare cu mai multe clase
  • Setul de date pentru cancerul de sân pentru clasificare binară

Fișierele de intrare pot fi găsite în Techtonique/Datasets (cele cu nume care se încheie cu 2 specifică un indice de set de instruire).

Fiecare exemplu va arăta cum să:

  • Efectuați apeluri API cu autentificare adecvată
  • Gestionați datele de răspuns

Să începem!

Obțineți un jeton de la: https://www.techtonique.net/token.

Apoi descărcați setul de date de clasificare:

!wget https://raw.githubusercontent.com/Techtonique/datasets/refs/heads/main/tabular/classification/iris_dataset2.csv
!wget https://raw.githubusercontent.com/Techtonique/datasets/refs/heads/main/tabular/classification/breast_cancer_dataset2.csv

--2025-05-26 23:15:42--  https://raw.githubusercontent.com/Techtonique/datasets/refs/heads/main/tabular/classification/iris_dataset2.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3092 (3.0K) (text/plain)
Saving to: ‘iris_dataset2.csv’

iris_dataset2.csv   100%(===================>)   3.02K  --.-KB/s    in 0s      

2025-05-26 23:15:43 (39.9 MB/s) - ‘iris_dataset2.csv’ saved (3092/3092)

--2025-05-26 23:15:43--  https://raw.githubusercontent.com/Techtonique/datasets/refs/heads/main/tabular/classification/breast_cancer_dataset2.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 122538 (120K) (text/plain)
Saving to: ‘breast_cancer_dataset2.csv’

breast_cancer_datas 100%(===================>) 119.67K  --.-KB/s    in 0.01s   

2025-05-26 23:15:43 (8.73 MB/s) - ‘breast_cancer_dataset2.csv’ saved (122538/122538)
!curl -X POST 
-H "Authorization: Bearer YOUR_TOKEN_HERE" 
-F "file=@iris_dataset2.csv;type=text/csv" 
"https://www.techtonique.net/mlclassification?base_model=GradientBoostingClassifier&n_hidden_features=5&predict_proba=True"

{"y_true":(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2),"y_pred":(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,2,2,1,2,2,2,2,2,2),"0":{"precision":1.0,"recall":1.0,"f1-score":1.0,"support":15.0},"1":{"precision":0.7894736842105263,"recall":1.0,"f1-score":0.8823529411764706,"support":15.0},"2":{"precision":1.0,"recall":0.7333333333333333,"f1-score":0.8461538461538461,"support":15.0},"accuracy":0.9111111111111111,"macro avg":{"precision":0.9298245614035089,"recall":0.9111111111111111,"f1-score":0.9095022624434389,"support":45.0},"weighted avg":{"precision":0.9298245614035088,"recall":0.9111111111111111,"f1-score":0.9095022624434389,"support":45.0},"proba":((0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.9999960244140262,3.334039683616685e-06,6.415462901466744e-07),(0.9999960244140262,3.334039683616685e-06,6.415462901466744e-07),(0.9999960244140262,3.334039683616685e-06,6.415462901466744e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(0.999996024414054,3.3340396558155455e-06,6.415462901466922e-07),(3.045033869468758e-06,0.9999937901439727,3.164822157743673e-06),(3.4085260162096436e-06,0.9999931695319606,3.4219420233008224e-06),(3.1524138718715695e-06,0.9999936827643102,3.1648218179040277e-06),(9.588330585448842e-06,0.9998587655346274,0.0001316461347872),(3.4085260162096436e-06,0.9999931695319606,3.4219420233008224e-06),(3.1524138718715695e-06,0.9999936827643102,3.1648218179040277e-06),(3.1524138718715695e-06,0.9999936827643102,3.1648218179040277e-06),(3.1524138718715695e-06,0.9999936827643102,3.1648218179040277e-06),(3.4085260162096436e-06,0.9999931695319606,3.4219420233008224e-06),(3.1524138718715695e-06,0.9999936827643102,3.1648218179040277e-06),(0.004932272272005095,0.9799043377817493,0.015163389946245788),(3.1524138718715695e-06,0.9999936827643102,3.1648218179040277e-06),(9.588330585508172e-06,0.9998587655408142,0.00013164612860042232),(3.4085260162096436e-06,0.9999931695319606,3.4219420233008224e-06),(3.1524138718715695e-06,0.9999936827643102,3.1648218179040277e-06),(8.748137691624919e-07,2.8391363939081826e-06,0.9999962860498369),(3.4506054062196775e-05,0.007887348624295493,0.9920781453216423),(8.620706075486918e-07,2.5556823801935716e-06,0.9999965822470123),(0.007316994751226876,0.9353406793501166,0.05734232589865652),(0.006129685125947995,0.7712671846855687,0.22260313018848327),(0.003273968018685709,0.969594174153424,0.027131857827890307),(7.169724003427306e-05,0.004745498561275488,0.9951828041986902),(2.245977897875399e-06,8.537222217088907e-06,0.9999892167998851),(0.00016867136329469363,0.568295956512619,0.4315353721240864),(3.1992229758050182e-06,0.0008659343830747356,0.9991308663939493),(2.301715170556224e-05,0.005261230377511008,0.9947157524707835),(8.748139925370251e-07,2.5837975927175516e-06,0.9999965413884147),(8.748137418487531e-07,2.8703586517843243e-06,0.9999962548276062),(2.2462428700241693e-06,1.3402409372558758e-05,0.9999843513477573),(8.748139925370251e-07,2.5837975927175516e-06,0.9999965413884147))}

Utilizați https://curlconverter.com/ pentru a traduce această solicitare în limbajul dvs. de programare preferat.

curl -X POST 
-H "Authorization: Bearer YOUR_TOKEN_HERE" 
-F "file=@/Users/t/Documents/datasets/tabular/classification/iris_dataset2.csv;type=text/csv" 
"http://127.0.0.1:8000/mlclassification?base_model=RandomForestClassifier&n_hidden_features=5&predict_proba=False"

Utilizați https://curlconverter.com/ pentru a traduce această solicitare în limbajul dvs. de programare preferat.

curl -X POST 
-H "Authorization: Bearer YOUR_TOKEN_HERE" 
-F "file=@/Users/t/Documents/datasets/tabular/classification/iris_dataset2.csv;type=text/csv" 
"http://127.0.0.1:8000/mlclassification?base_model=RandomForestClassifier&n_hidden_features=5&predict_proba=True"

Utilizați https://curlconverter.com/ pentru a traduce această solicitare în limbajul dvs. de programare preferat.

curl -X POST 
-H "Authorization: Bearer YOUR_TOKEN_HERE" 
-F "file=@/Users/t/Documents/datasets/tabular/classification/breast_cancer_dataset2.csv;type=text/csv" 
"http://127.0.0.1:8000/mlclassification?base_model=RandomForestClassifier&n_hidden_features=5&predict_proba=True"

Utilizați https://curlconverter.com/ pentru a traduce această solicitare în limbajul dvs. de programare preferat.

curl -X POST 
-H "Authorization: Bearer YOUR_TOKEN_HERE" 
-F "file=@/Users/t/Documents/datasets/tabular/classification/breast_cancer_dataset2.csv;type=text/csv" 
"http://127.0.0.1:8000/gbdtclassification" # default is lightgbm

Utilizați https://curlconverter.com/ pentru a traduce această solicitare în limbajul dvs. de programare preferat.

curl -X POST 
-H "Authorization: Bearer YOUR_TOKEN_HERE" 
-F "file=@/Users/t/Documents/datasets/tabular/classification/breast_cancer_dataset2.csv;type=text/csv" 
"http://127.0.0.1:8000/gbdtclassification?model_type=xgboost"

Utilizați https://curlconverter.com/ pentru a traduce această solicitare în limbajul dvs. de programare preferat.

curl -X POST 
-H "Authorization: Bearer YOUR_TOKEN_HERE" 
-F "file=@/Users/t/Documents/datasets/tabular/classification/breast_cancer_dataset2.csv;type=text/csv" 
"http://127.0.0.1:8000/gbdtclassification?model_type=xgboost&predict_proba=False"

Utilizați https://curlconverter.com/ pentru a traduce această solicitare în limbajul dvs. de programare preferat.

import requests

headers = {
    'Authorization': 'Bearer YOUR_TOKEN_HERE',
}

params = {
    'base_model': 'RandomForestClassifier',
    'n_hidden_features': '5',
    'predict_proba': 'True',
}

files = {
    'file': ('breast_cancer_dataset2.csv', open('breast_cancer_dataset2.csv', 'rb'), 'text/csv'),
}

response = requests.post('https://www.techtonique.net/mlclassification',
                         params=params, headers=headers,
                         files=files)

import matplotlib.pyplot as plt
from sklearn.calibration import calibration_curve
def plot_calibration_curve(y_true, y_prob, n_bins=10, title="Calibration Plot"):
    """Plot calibration curve for a single class."""
    prob_true, prob_pred = calibration_curve(y_true, y_prob, n_bins=n_bins)

    plt.figure(figsize=(8, 6))
    plt.plot(prob_pred, prob_true, 's-', label="Calibration curve")
    plt.plot((0, 1), (0, 1), '--', label="Perfectly calibrated")
    plt.xlabel('Mean predicted probability')
    plt.ylabel('True probability')
    plt.title(title)
    plt.legend()
    plt.grid(True)
    plt.show()


response_json = response.json()
y_true = response_json('y_true')
y_prob = (response_json('proba')(i)(1) for i in range(len(y_true)))
plot_calibration_curve(y_true, y_prob)

Image-titlu-here

# prompt: load rpy2 extension

%load_ext rpy2.ipython

%%R

library(httr)

headers = c(
  Authorization = "Bearer YOUR_TOKEN_HERE"
)

params = list(
  base_model = "GradientBoostingClassifier",
  n_hidden_features = "5",
  predict_proba = "True"
)

# file from:
files = list(
  file = upload_file("iris_dataset2.csv")
)

res <- httr::POST(url = "https://www.techtonique.net/mlclassification", httr::add_headers(.headers=headers), query = params, body = files, encode = "multipart")

print(res)

Response (https://www.techtonique.net/mlclassification?base_model=GradientBoostingClassifier&n_hidden_features=5&predict_proba=True)
  Date: 2025-05-26 23:16
  Status: 200
  Content-Type: application/json
  Size: 3.67 kB

4 – Excel

Pentru mai multe moduri de a interacționa, de exemplu, folosind Excel:

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.