Zephyrnet-logo

Histogramverhogende gradiëntclassificatie

Datum:

Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.

Hallo allemaal, gelukkig nieuwjaar, een veilig en deskundig jaar voor de boeg. Dus in het artikel van vandaag zullen we zien over een nieuw algoritme genaamd Histogram Boosting Gradient Classifier (HBG). Misschien kwamen maar heel weinig van hen dit specifieke algoritme tegen. Dus, wat is een Histogram Boosting Gradient-classificatie? Het is een soort ensemble-leer- en gradiëntversterkend algoritme in Machine Learning-technologie.

Machine Learning - begrip voor leken

We gaan niet diep in op machine learning, maar wat is machine learning in eenvoud? Zonder expliciete programmering, hoe machines (vooral computers) ons menselijk gedrag (voornamelijk intelligentiedomein van mensen) imiteren bij het leren van gegevens, noemen we het Machine Learning.

Soorten machine learning

Er zijn drie hoofdtypen Machine Learning:

  1. Supervised Machine Learning-algoritme (taakgestuurd)
  2. Unsupervised Machine Learning-algoritme (gegevensgestuurd)
  3. Reinforcement Machine Learning-algoritme (Beloningen
    en straffen)
  4. Soms, semi-gesuperviseerd machine learning
    algoritme (taak- en datagestuurd)

Het gecontroleerde Machine Learning-algoritme

We trainen ons model op een gelabelde dataset in begeleid leren. We hebben onbewerkte invoergegevens (elke numerieke waarde of een ander gegevenstype – informatie) en de uitkomsten (klasse/label). We hebben onze data opgedeeld in twee delen: training en testen. De trainingsdataset wordt gebruikt om ons netwerk te trainen, terwijl de testdataset wordt gebruikt om resultaten te voorspellen of om de juistheid van ons model of algoritme te beoordelen.

Dus onder gecontroleerde machine learning zijn er twee cruciale concepten:

  1. Classificatie
  2. Regressie

Classificatie

Classificatie is het proces van het bepalen van een algoritme dat helpt bij het categoriseren van datasets op basis van verschillende factoren (kenmerken – anders dan de labelkolom). In Classificatie wordt een computeralgoritme getraind op trainingsgegevenssets en worden de gegevens vervolgens op basis van die training in meerdere groepen ingedeeld voor een testgegevensset.

Denk bijvoorbeeld aan de normale en abnormale omstandigheden van een patiënt.

Met behulp van gesuperviseerde algoritmen voor machinaal leren, verwerken we elke gegevens met een label (2 klassen - regulier of niet) met behulp van gesuperviseerde algoritmen voor machinaal leren. Wanneer we nieuwe gegevens (testgegevens) in het testgedeelte geven, moet het systeem het juiste label (?) classificeren.

Ensemble machine learning

Daarom werken we met een classificatiecategorie. Dus, waarom gebruiken we ensemble machine learning? Laten we deze specifieke oplossing in lekentaal verduidelijken. Overweeg een patiënt genaamd PREM, die gezondheidsproblemen heeft en heeft besloten medisch advies in te winnen. Hij gaat naar een dokter in de buurt, en na wat medicatietesten te hebben gedaan, concludeert de dokter dat het een typische verkoudheid is, maar PREM is nog steeds niet overtuigd. Daarom besluit hij een andere arts te raadplegen, en na het uitvoeren van meer tests, voorspelt deze arts dat het een virale koorts is, dus PREM is nog steeds niet overtuigd. Omdat dit een pandemieprobleem is, overlegde hij in een andere benadering. Hij haalde de twee artsen over om elkaar te ontmoeten, besprak vervolgens alle bevindingen en overtuigde hen er uiteindelijk van dat het gewoon een gewone koorts was. Ze hoefden zich geen zorgen te maken over COVID- of Omricon-problemen. Zei, ensembleleren is het proces van het mengen van verschillende modellen (hier zwakke modellen) om een ​​superieur resultaat te genereren.

Soorten Ensemble Machine Learning

Grofweg ingedeeld in:

  1. bagging
  2. Het stimuleren van
  3. Stapelen

Algoritme versterken

We begrijpen nu dat stimuleren een zwakke leerling combineert met een basisleerling om een ​​strikte regel te genereren. Het eerste probleem dat bij u opkomt is: 'Hoe identificeert boosting zwakke regels?' We gebruiken machine learning (ML) technieken met een andere distributie om zwakke regels te ontdekken. Elke keer dat de basisleermethode wordt gebruikt, wordt een nieuwe zwakke voorspellingsregel gegenereerd. Dit is een stapsgewijze procedure. Na vele rondes combineert de boost-benadering talrijke kwetsbare wetten in één enkele krachtige voorspellingsregel.

Algoritme versterken | Histogramverhogende gradiëntclassificatie
Afbeeldingsbron: https://towardsdatascience.com/boosting-algorithms-explained-d38f56ef3f30 

Gradiëntversterkende classificatie

Dit is een van de krachtigste algoritmen in machine learning. GB is een techniek die aan populariteit wint vanwege zijn hoge voorspellingssnelheid en nauwkeurigheid, vooral bij het omgaan met grote en gecompliceerde datasets, omdat we weten dat de fouten in algoritmen voor machine learning grofweg in twee categorieën worden ingedeeld, namelijk Bias Error en Variance Error. Aangezien gradiëntversterking een van de versterkende algoritmen is, wordt het gebruikt om de biasfout van het model te minimaliseren.

Belang van bias-fout

De vertekende mate waarin de voorspelling van een model afwijkt van de doelwaarde in vergelijking met de trainingsgegevens. Bias-fout treedt op door de aannames die in een model worden gebruikt te verminderen om de doelfuncties efficiënter te benaderen. De modelselectie kan leiden tot vertekening.

Gradiëntversterking – Werken

Het is gebaseerd op de aanname dat het beste volgende model de totale voorspellingsfout minimaliseert wanneer het wordt samengevoegd met eerdere modellen. Het centrale concept is om de gewenste resultaten voor dit volgende model te definiëren om fouten te verminderen. Hoe worden de doelen bepaald? Het doelresultaat voor elk exemplaar in de gegevens wordt bepaald door hoeveel het veranderen van de voorspelling van dat geval de totale voorspellingsfout beïnvloedt,

Stel dat een kleine wijziging in de voorspelling van een casus resulteert in een substantiële vermindering van fouten; het volgende doelresultaat van de zaak is een hoge waarde. Voorspellingen van het nieuwe model dat dicht bij hun doelstellingen ligt, zullen fouten helpen verminderen.

Als een kleine aanpassing in de voorspelling van een casus geen verandering in de fout tot gevolg heeft, is het daaropvolgende doelresultaat van de casus nul. Het wijzigen van deze voorspelling heeft geen invloed op de fout.

Verloopversterking ontleent zijn naam aan het feit dat de doeluitkomsten voor elke instantie worden bepaald afhankelijk van de toename van de fout over de prognose. In de ruimte van haalbare voorspellingen voor elk trainingsvoorbeeld, zet elk nieuw model een stap in de richting van het minimaliseren van voorspellingsfouten.

Op histogram gebaseerd algoritme

Een histogram wordt gebruikt om de frequentie van gegevens (aantal keren) te tellen of te illustreren over discrete perioden die bins worden genoemd. Elke bin vertegenwoordigt de frequentie van de bijbehorende pixelwaarde en het histogramalgoritme is conceptueel vrij eenvoudig.

Op histogram gebaseerd algoritme | Histogramverhogende gradiëntclassificatie
Afbeeldingsbron: https://www.researchgate.net/figure/Histogram-algorithm_fig3_346577317

Op histogram gebaseerde gradiëntversterking

HGB is beschikbaar als we scikit-learn v0.21.0 of een latere versie hebben. In eenvoudige bewoordingen weten we allemaal dat binning een concept is dat wordt gebruikt bij de voorverwerking van gegevens, wat inhoudt dat de VIT-universiteit wordt overwogen en de studenten worden verdeeld op basis van de staat in ons land, zoals Tamilnadu, Kerala, Karnataka, enzovoort. Nadat segmentatie is omgezet in numerieke gegevens, wordt hetzelfde binning-concept toegepast op het beslissingsboom-algoritme (DT). Door het aantal functies te verminderen, zal het worden gebruikt om de snelheid van het algoritme te verhogen. Dientengevolge wordt hetzelfde begrip gebruikt in DT door te groeperen met histogrammen, wat bekend staat als de HGB-classificatie.

Parameters in op histogram gebaseerde gradiëntversterking

Over het algemeen hebben we voor alle classificaties verschillende parameters om onze specifieke algoritmen te verfijnen om de beste resultaten te bereiken. Hetzelfde geldt voor de HBG-classifier; hoewel er veel factoren zijn, zijn sommige van cruciaal belang, en die parameters over de HBG-classificatie zijn,

learning_rate, max_iter, max_depth, l2_regularization, elk heeft een specifiek doel om het model te verfijnen,

learning_rate gaat over krimp, max_iter gaat over het aantal iteraties dat nodig is om een ​​goed resultaat te krijgen, max_depth gaat over verschillende bomen (beslissingsboomconcepten), en l2_regularization, over regularisatieconcept om overfitting-problemen te voorkomen.

Python-implementatie van histogramverhogende gradiëntclassificatie

#importing bibliotheken importeer numpy als np importeer panda's als pd importeer matplotlib.pyplot als plt
#importing datasets normal = pd.read_csv('ptbdb_normal.csv') abnormaal = pd.read_csv('ptbdb_abnormal.csv')
#viewing normale dataset normal.head()
#viewing abnormale dataset abnormal.head()
#dimenion voor normale normale vorm
#dimensie voor abnormale abnormale vorm
#het veranderen van de willekeurige kolomnamen in sequentieel - normaal #omdat we een aantal getallennaam als kolommen hebben, moeten we dat veranderen in getallen zoals voor normaal in normaal: normal.columns = list(range(len(normal.columns)))
#bewerkte kolommen bekijken voor normale gegevens normal.head()
#het veranderen van de willekeurige kolomnamen in sequentieel - abnormaal #omdat we een aantal getallennaam als kolommen hebben, moeten we dat veranderen in getallen zoals voor abnormalen in abnormaal: abnormal.columns = list(range(len(abnormal.columns)))
#viewing bewerkte kolommen voor abnormale gegevens abnormal.head()
dataset.vorm
#basisinfo van statistieken dataset.describe()
#basisinformatie van dataset dataset.info()
#missing values ​​any from the dataset print(str('Any missing data of NaN in the dataset:'), dataset.isnull().values.any())
#databereiken in de dataset - sample print("De minimum- en maximumwaarden zijn {}, {}".format(np.min(dataset.iloc[-2,:].values), np.max(dataset.iloc [-2,:].waarden)))
#correlatie voor alle functies in de dataset correlation_data =dataset.corr() print(correlation_data)
import seaborn als sns #visulaization voor correlatie plt.figure(figsize=(10,7.5)) sns.heatmap(correlation_data, annot=True, cmap='BrBG')
#for doelwaarde telling label_dataset = dataset[187].value_counts() label_dataset
#visualisatie voor doellabel label_dataset.plot.bar()
#dataset splitsen naar afhankelijke en onafhankelijke variabele X = dataset.iloc[:,:-1].values ​​#independent values ​​/ features y = dataset.iloc[:,-1].values ​​#dependent values ​​/ target
#splitting van de datasets voor trainings- en testproces van sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size =0.3, random_state=42)
#size voor de sets print('size of X_train:', X_train.shape) print('size of X_test:', X_test.shape) print('size of y_train:', y_train.shape) print('size of y_test :', y_test.vorm)
#histogramverhogende gradiëntclassifer van sklearn.experimental import enable_hist_gradient_boosting van sklearn.ensemble import HistGradientBoostingClassifier hgb_classifier = HistGradientBoostingClassifier() hgb_classifier.fit(X_train,y_train) y_predict_htest.
van sklearn.metrics import verwarring_matrix, nauwkeurigheid_score, roc_auc_score cm_hgb = verwarring_matrix(y_test, y_pred_hgb) print(cm_hgb) van mlxtend.plotting import plot_confusion_matrix fig, ax = plot_confusion_matrix(conf_mat=cm_hpl_hgb), cm.Greens) plt.xlabel('Predictions', fontsize=6) plt.ylabel('Actuals', fontsize=6) plt.title('Confusion Matrix', fontsize=18) plt.show()
van sklearn.model_selection import cross_val_score nauwkeurigheid_score(y_test, y_pred_hgb) roc_auc_score(y_test, y_pred_hgb)
acc_hgb = cross_val_score(schatter = hgb_classifier, X = X_train, y = y_train, cv = 10) print("Nauwkeurigheid van hgb: {:.2f} %".format(acc_hgb.mean()*100)) print("SD van hgb: {:.2f} %".format(acc_hgb.std()*100))
print(metrics.classification_report(y_test, y_pred_hgb))
van sklearn.model_selection import GridSearchCV parameters_hgb = [{'max_iter': [1000,1200,1500], 'learning_rate': [0.1], 'max_depth': [25, 50, 75], 'l2_regularization': [1.5], 'scoring': ['f1_micro']}] grid_search_hgb = GridSearchCV(estimator = hgb_classifier, param_grid = parameters_hgb, scoring = 'nauwkeurigheid', cv = 10, n_jobs = -1) grid_search_hgb.fit(X_train, y_train) best_accuracy_hgb = grid_accuracy_hgb. best_score_ best_paramaeter_hgb = grid_search_hgb.best_params_ print("Beste nauwkeurigheid van HGB:
Afbeeldingsbron: auteur

Nauwkeurigheidsscore = 97.15%

Roc - Auc-score = 0.9611

Nauwkeurigheid (CV=10) = 97.56%

Nauwkeurigheid raster zoeken = 98.16%

Verwarringsmatrix | Histogramverhogende gradiëntclassificatie
Afbeeldingsbron: Auteur – Verwarringsmatrix voor de dataset

, volledige code is toegankelijk vanuit deze site, samen met de gegevensbeschrijving.

Daarom kunnen we uit dit artikel enkele ideeën opdoen over wat machine learning is en de typen ervan, en vervolgens het classificatietype in begeleid leren. Toegevoegd die we tegenkwamen, waarom gradiëntalgoritme en hoe het werkt en gecorreleerd met histogramconcept om histogramgradiëntversterkingsconcept te vormen. Ik hoop dat het python-coderingsgedeelte duidelijk uitlegt hoeveel het Histogram Boosting Gradient Classifier-algoritme helpt bij het verbeteren van de nauwkeurigheid, samen met het verfijnen van parameters.

Laat uw gedachten/meningen achter in het opmerkingenveld hieronder. Leren van je fouten is mijn favoriete quote; als je iets onjuist vindt, markeer het dan; Ik leer graag van studenten zoals jij.

Over mij, kortom, ik ben Premanand. S, Assistant Professor Jr en een onderzoeker in Machine Learning. Ik ben dol op lesgeven en leer graag nieuwe dingen in Data Science. Mail me bij twijfel of fout, [e-mail beveiligd], en mijn LinkedIn https://www.linkedin.com/in/premsanand/.

De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt. 

Bron: https://www.analyticsvidhya.com/blog/2022/01/histogram-boosting-gradient-classifier/

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?