Sök…


Klassificering

Föreställ dig att ett system vill upptäcka äpplen och apelsiner i en fruktkorg. Systemet kan plocka en frukt, extrahera vissa egenskaper hos den (t.ex. vikten av den frukten).

Anta att systemet har en lärare! som lär systemet vilka objekt som är äpplen och vilka är apelsiner . Detta är ett exempel på ett övervakat klassificeringsproblem . Det övervakas eftersom vi har märkt exempel. Det är klassificering eftersom utgången är en förutsägelse för vilken klass vårt objekt tillhör också.

I det här exemplet beaktar vi tre funktioner (egenskaper / förklarande variabler):

  1. är vikten av den valda frukten större än 0,5 gram
  2. är storlek större än 10 cm
  3. är färgen röd

(0 betyder Nej och 1 betyder Ja)

Så för att representera ett äpple / apelsin har vi en serie (kallad vektor) med 3 egenskaper (ofta kallad en funktionvektor)

(t.ex. [0,0,1] betyder att denna fruktvikt inte är större än 0,5 gram, och dess storlek är inte större än 10 cm och färgen på den är röd)

Så vi plockar 10 frukt slumpmässigt och mäter deras egenskaper. Läraren (människa) märker sedan varje frukt manuellt som apple => [1] eller orange => [2] .

t.ex.) Lärare väljer en frukt som är äpple. Representationen av detta äpple för system kan vara något så här: [1, 1, 1] => [1] , Detta betyder att denna frukt har en vikt som är större än 0,5 gram , 2 storlek större än 10 cm och 3. färgen på denna frukt är röd och slutligen är det ett äpple (=> [1])

Så för alla tio frukter märker läraren varje frukt som äpple [=> 1] eller apelsin [=> 2] och systemet hittade sina egenskaper. som du antar att vi har en serie vektor (som kallas det matris) för att representera hela 10 frukter.

Fruktklassificering

I det här exemplet kommer en modell att lära sig att klassificera frukt med tanke på vissa funktioner, med hjälp av etiketter för träning.

Vikt Färg Märka
0,5 grön äpple
0,6 lila plommon
3 grön vattenmelon
0,1 röd körsbär
0,5 röd äpple

Här kommer modellen att ta vikt och färg som funktioner för att förutsäga etiketten. Till exempel [0,15, "röd"] bör resultera i en "körsbär" -prognos.

Introduktion till Supervised Learning

Det finns ganska många situationer där man har enorma mängder data och använder han måste klassificera ett objekt i en av flera kända klasser. Tänk på följande situationer:

Banking: När en bank får en begäran från en kund om ett bankkort måste banken besluta om att utfärda bankkortet eller inte, baserat på egenskaperna hos sina kunder som redan njuter av korten för vilka kredithistoriken är känd.

Medicinsk: Man kan vara intresserad av att utveckla ett medicinskt system som diagnostiserar en patient om han har eller inte har en viss sjukdom, baserat på de observerade symtomen och medicinska test utförda på den patienten.

Ekonomi: Ett finansiellt konsultföretag skulle vilja förutsäga trenden för priset på en aktie som kan klassificeras i uppåt, nedåt eller ingen trend baserat på flera tekniska funktioner som styr prisrörelsen.

Genuttryck: En forskare som analyserar data för genuttryck vill identifiera de mest relevanta generna och riskfaktorerna som är involverade i bröstcancer för att skilja friska patienter från bröstcancerpatienter.

I alla ovanstående exempel klassificeras ett objekt i en av flera kända klasser, baserat på mätningarna gjorda på ett antal egenskaper, som han kanske tror diskriminerar objekt för olika klasser. Dessa variabler kallas prediktorvariabler och klassetiketten kallas den beroende variabeln. Observera att i alla ovanstående exempel är den beroende variabeln kategorisk .

För att utveckla en modell för klassificeringsproblemet kräver vi, för varje objekt, data om en uppsättning föreskrivna egenskaper tillsammans med klassetiketter, som objekten tillhör. Datauppsättningen är indelad i två uppsättningar i ett föreskrivet förhållande. Den större av dessa datamängder kallas träningsdatauppsättningen och den andra testdatauppsättningen . Utbildningsuppsättningen används i utvecklingen av modellen. När modellen utvecklas med hjälp av observationer vars klassetiketter är kända, är dessa modeller kända som övervakade inlärningsmodeller .

Efter att modellen har utvecklats ska modellen utvärderas för sin prestanda med hjälp av testdatauppsättningen. Målet med en klassificeringsmodell är att ha minsta sannolikhet för felklassificering på de osynliga observationerna. Observationer som inte används i modellutvecklingen kallas osynliga observationer.

Beslutsträdinduktion är en av klassificeringsmodellens byggtekniker. Beslutsträdmodellen byggd för den kategoriska beroende variabeln kallas ett klassificeringsträd . Den beroende variabeln kan vara numerisk i vissa problem. Beslutsträdmodellen utvecklad för numeriska beroende variabler kallas Regression Tree .

Linjär regression

Eftersom Supervised Learning består av en mål- eller resultatvariabel (eller beroende variabel) som ska förutsägas från en given uppsättning prediktorer (oberoende variabler). Med hjälp av dessa uppsättningar med variabler genererar vi en funktion som kartlägger ingångar till önskade utgångar. Träningsprocessen fortsätter tills modellen uppnår en önskad nivå av noggrannhet på träningsdata.

Därför finns det många exempel på Supervised Learning-algoritmer, så i det här fallet skulle jag vilja fokusera på Linear Regression

Linjär regression Det används för att uppskatta verkliga värden (huskostnader, antal samtal, total försäljning etc.) baserat på kontinuerliga variabler. Här skapar vi förhållandet mellan oberoende och beroende variabler genom att anpassa en bästa linje. Denna bäst passande linje kallas regressionslinje och representeras av en linjär ekvation Y = a * X + b.

Det bästa sättet att förstå linjär regression är att återuppleva denna upplevelse av barndomen. Låt oss säga, du ber ett barn i femte klass att ordna människor i sin klass genom att öka viktordningen, utan att be dem deras vikter! Vad tror du att barnet kommer att göra? Han / hon skulle förmodligen titta (visuellt analysera) på höjd och bygga av människor och ordna dem med hjälp av en kombination av dessa synliga parametrar.

Detta är linjär regression i verkliga livet! Barnet har faktiskt räknat ut att höjd och byggnad skulle korreleras med vikten genom en relation, som ser ut som ekvationen ovan.

I denna ekvation:

Y – Dependent Variable
a – Slope
X – Independent variable
b – Intercept

Dessa koefficienter a och b härleds baserat på minimering av summan av kvadratisk skillnad i avstånd mellan datapunkter och regressionslinje.

Titta på nedanstående exempel. Här har vi identifierat den bästa passningslinjen med linjär ekvation y = 0,2811x + 13,9 . Nu med denna ekvation kan vi hitta vikten, känna till en persons höjd.

Få en glimt av Linjär regression i Python

Linjär regression är av huvudsakligen två typer: enkel linjär regression och multipel linjär regression. Enkel linjär regression kännetecknas av en oberoende variabel. Och flera linjära regression (som namnet antyder) kännetecknas av flera (mer än 1) oberoende variabler. När du hittar bäst passande linje kan du passa en polynomisk eller krökningsrig regression. Och dessa är kända som polynomial eller kröklig regression.

Bara ett tips om att implementera linjär regression i Python

#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import linear_model

#Load Train and Test datasets
#Identify feature and response variable(s) and values must be numeric and numpy arrays

x_train=input_variables_values_training_datasets
y_train=target_variables_values_training_datasets
x_test=input_variables_values_test_datasets

# Create linear regression object

linear = linear_model.LinearRegression()

# Train the model using the training sets and check score

linear.fit(x_train, y_train)
linear.score(x_train, y_train)

#Equation coefficient and Intercept

print('Coefficient: \n', linear.coef_)
print('Intercept: \n', linear.intercept_)

#Predict Output

predicted= linear.predict(x_test)

Jag har gett en inblick i att förstå Supervised Learning gräva ner till linjär regression algoritm tillsammans med ett utdrag av Python-kod.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow