Co to jest programowanie liniowe w nauce o danych: przegląd
Opublikowany: 2022-09-21Data Science stała się prawdziwie interdyscyplinarną dziedziną, która czerpie z informatyki, matematyki, analizy danych, statystyki itp. Jej postępy pomogły firmom na całym świecie podejmować znacznie bardziej świadome, oparte na danych decyzje. W rezultacie dzisiaj firmy zdają sobie sprawę z wagi danych, które pozyskiwały przez lata.
Analitycy danych wykorzystują zaawansowane narzędzia do oceny bieżących scenariuszy biznesowych z wykorzystaniem istniejących danych, określania relacji i znajdowania wnikliwych wzorców. Ta metoda jest znana jako analiza opisowa. Ponadto naukowcy zajmujący się danymi badają również skutki i ich przyczyny, pamiętając o różnych zmiennych zależnych i niezależnych, znanych jako analityka predykcyjna.
Ponieważ analityka predykcyjna działa poprzez identyfikację związków przyczynowo-skutkowych, jest ona korzystna dla podejmowania wnikliwych decyzji na przyszłość. Nie jest to jednak tak proste, jak mogłoby się wydawać. Każda firma ma do czynienia z wieloma zmiennymi – w tym z bieżącymi spostrzeżeniami, ograniczeniami i nie tylko.
Sprawdź nasze certyfikaty w zakresie nauki o danych, aby podnieść swoje umiejętności.
Aby dokładnie przewidzieć, musisz wziąć pod uwagę te zmienne i znaleźć optymalne rozwiązanie. W tym miejscu pojawia się programowanie liniowe. Programowanie liniowe to ważna technika, która działa algorytmicznie i pomaga naukowcom danych znaleźć najbardziej optymalne rozwiązanie różnych problemów. Programowanie liniowe uwzględnia wszystkie istotne zmienne, równości i nierówności, aby dojść do ostatecznego rozwiązania, co zapewnia, że przewidywanie jest niezawodne.
W tym artykule przyjrzyjmy się, czym jest programowanie liniowe, różnym metodom programowania liniowego i przykładowemu problemowi programowania liniowego!
Zapoznaj się z naszymi popularnymi stopniami naukowymi o danych
Executive Post Graduate Program in Data Science z IIITB | Profesjonalny program certyfikatów w dziedzinie nauki o danych do podejmowania decyzji biznesowych | Master of Science in Data Science z University of Arizona |
Zaawansowany program certyfikacji w dziedzinie nauki o danych z IIITB | Profesjonalny program certyfikacji w dziedzinie nauki o danych i analityki biznesowej Uniwersytetu Maryland | Stopnie nauk o danych |
Programowanie liniowe w analityce predykcyjnej
Zanim zaczniemy od szczegółów technicznych, należy zauważyć, że programowanie w kontekście programowania liniowego nie odnosi się do programowania komputera lub oprogramowania. Z drugiej strony programowanie liniowe jest zasadniczo techniką optymalizacji (optymalizacja liniowa) pomocną w znajdowaniu najlepszych wyników z modeli matematycznych. Aby sformułować program liniowy, ważne jest zrozumienie podstawowych elementów programowania liniowego, które obejmują:
- Zmienne decyzyjne: Odnosi się to do zmiennych, które chcielibyśmy określić, niewiadomych.
- Funkcja celu: Odnosi się do funkcji liniowej reprezentującej wielkości, które należy zminimalizować lub zmaksymalizować.
- Ograniczenia: Jest to zestaw nierówności lub równości reprezentujący wszystkie ograniczenia naszej zmiennej decyzyjnej.
- Ograniczenia nieujemne: Odnosi się to do zasadniczego punktu ograniczenia, w którym wartości zmiennych decyzyjnych są nieujemne.
Po ustaleniu podstawowych pojęć przyjrzyjmy się teraz, jakie podejście można zastosować podczas rozwiązywania problemu programowania liniowego.
Najważniejsze umiejętności w zakresie nauki o danych, których należy się nauczyć w 2022 roku
SL. Nie | Najlepsze umiejętności w zakresie analizy danych do nauki w 2022 r. | |
1 | Certyfikaty analizy danych | Wnioskujące certyfikaty statystyczne |
2 | Certyfikaty testowania hipotez | Certyfikaty regresji logistycznej |
3 | Certyfikaty regresji liniowej | Algebra Liniowa do Certyfikacji Analiz |
Rozwiązywanie programowania liniowego
Aby pomyślnie rozwiązać problem programowania liniowego, możemy wykonać następujące cztery kroki:
- Identyfikacja zmiennych decyzyjnych
- Rozwijanie funkcji celu
- Określanie ograniczeń
- Stwierdzenie ograniczeń nienegatywności
Zagłębimy się w te kroki później, gdy przyjrzymy się rozwiązanemu przykładowi programowania liniowego. Ale wcześniej spójrzmy na różne sposoby podejścia do problemu programowania liniowego. Do wyboru są zasadniczo cztery podejścia:
- Metoda graficzna: Metoda graficzna jest najbardziej podstawową metodą stosowaną do rozwiązywania problemu programowania liniowego w dwóch zmiennych. Jest najczęściej używany, gdy należy wziąć pod uwagę tylko dwie zmienne decyzyjne. Metoda graficzna polega na utworzeniu zbioru nierówności liniowych i poddaniu ich odpowiednim warunkom lub ograniczeniom. Następnie równania są wykreślane na płaszczyźnie XY, a obszarem dopuszczalnym jest obszar przecięcia utworzony przez wykreślenie wszystkich równań liniowych. Ten obszar wskazuje wartości modelu i zapewnia optymalne rozwiązanie.
- Metoda Simplex: Jest to potężna metoda rozwiązywania problemów programowania liniowego i jest oparta na iteracyjnej procedurze w celu uzyskania optymalnego rozwiązania. W tym podejściu podstawowe zmienne są modyfikowane aż do osiągnięcia maksymalnej lub minimalnej wartości (zgodnie z wymaganiami) dla początkowej funkcji celu.
- Northwest Corner i metoda najmniejszych kosztów: Są to specyficzne rodzaje metod stosowanych zasadniczo w przypadku problemów transportowych w celu określenia najlepszego sposobu transportu produktów lub towarów. W rezultacie jest to wygodna metoda optymalizacji problemów z podażą i popytem. Założeniem dla tej metody jest to, że istnieje tylko jeden produkt. Jednak popyt na ten produkt pochodzi z różnych źródeł, które łącznie składają się na całkowitą podaż. Dlatego ta metoda ma na celu zminimalizowanie kosztów transportu.
- Rozwiązywanie za pomocą R: R jest jednym z najczęściej używanych narzędzi do nauki o danych i analizy danych. R bardzo ułatwia przeprowadzenie optymalizacji w zaledwie kilku linijkach kodu przy użyciu pakietu IpSolve.
- Rozwiązywanie za pomocą narzędzi open source: ostatnia metoda wykorzystuje jedno z wielu dostępnych narzędzi open source do rozwiązywania problemów z optymalizacją. Jednym z przykładów narzędzia typu open source jest OpenSolve, liniowy optymalizator dla Excela, który działa bezproblemowo dla maksymalnie 100 zmiennych. Poza tym CPLEX, MATLAB, Gurobi itp. to kilka innych przydatnych narzędzi open source.
Przeczytaj nasze popularne artykuły o Data Science
Ścieżka kariery w Data Science: kompleksowy przewodnik po karierze | Rozwój kariery w dziedzinie Data Science: Nadeszła przyszłość pracy | Dlaczego nauka o danych jest ważna? 8 sposobów, w jakie nauka o danych wnosi wartość do biznesu |
Znaczenie nauki o danych dla menedżerów | Ostateczna ściągawka do nauki o danych, którą każdy badacz danych powinien mieć | 6 najważniejszych powodów, dla których warto zostać analitykiem danych |
Dzień z życia Data Scientist: co robią? | Obalamy mit: analiza danych nie wymaga kodowania | Business Intelligence vs Data Science: Jakie są różnice? |
Przykładowe graficzne rozwiązywanie programowania liniowego
W corocznych sezonach świątecznych firma bierze pod uwagę dwa czynniki – X i Y – tworząc pakiet użytkownika. Waga całej paczki musi wynosić 5kg – i nie może być więcej niż 4kg Y, a co najmniej 2kg X. X i Y składają się na cały zysk w następujący sposób – Rs. 5/kg dla X i 6/kg dla Y.
Spróbujmy rozwiązać ten problem programowania liniowego, aby uzyskać najlepszą mieszankę, która skutkuje największymi zyskami dla firmy.
1. Praca z naszą podstawową funkcją
Celem optymalizacji naszego problemu jest maksymalizacja zysku. Wkład X i Y w zysk jest nam podany w opisie problemu. Ale już,
- Niech kg X
- Niech b kg Y
- Nasza funkcja celu staje się wtedy -> c = 5*a + 6*b i musimy zmaksymalizować c.
Mamy a, b jako zmienne decyzyjne, podczas gdy c jest naszą wymaganą funkcją.
2. Rozwijanie ograniczeń z problemu
W zadaniu otrzymujemy następujące ograniczenia:
- Waga opakowania upominkowego musi wynosić 5 kg => a + b = 5
- Mniej niż 4kg Y i co najmniej 2kg X => x>=2; y<=4
3. Ograniczenia nieujemne
Wielkości dla X i Y powinny być dodatnie => a, b>0
Teraz szybko podsumujmy cały problem, tak jak to przedstawiliśmy do tej pory:
Musimy zoptymalizować c = 5a+6b w następujących dwóch warunkach:
- a+b=5
- a>=2
- b<=4
Do rozwiązania tego problemu używamy metody graficznej, więc rozważmy wykres dwuwymiarowy z osią XY i spróbujmy wykreślić równania i równania. Będziemy mieli ze sobą następujące rzeczy:
- a + b = 5 to linia prosta przecinająca oś x w punkcie (5,0) i oś y w punkcie (0,5). Ponieważ w naszym wyrażeniu mamy znak równości, jesteśmy pewni, że nasz możliwy region leży w obszarze przecięcia tych linii.
- a >= 2 to oś x cięcia w linii prostej jako (2,0). Ponieważ nasze wyrażenie ma większe niż ograniczenie, nasz możliwy region spada do RHS naszej linii.
- b <= 4 jest linią prostą przecinającą oś y w punkcie (0,4). Ponieważ mamy mniejsze ograniczenie, naszym możliwym regionem jest obszar poniżej linii.
- Wreszcie, ponieważ a i b są wartościami dodatnimi, naszym obszarem zainteresowania jest pierwszy kwadrant.
Jeśli wykreśliłeś te linie i ograniczenia na arkuszu wykresu, będziesz miał końcowy region, który spełnia wszystkie wymagane warunki. Dwa punkty, które leżą na najbardziej skrajnej linii, są możliwymi względami maksymalizacji zysku. Są to punkty (2,3) i (5,0). Aby dowiedzieć się, który z tych dwóch daje lepsze zyski, możemy po prostu umieścić punkty w naszej funkcji celu i zobaczyć, która daje najlepszy wynik:
- c = 5a + 6b ⬄ c = (5*2) +(6*3) = 28
- c = 5a + 6b ⬄ z = (5*5) +(6*0) = 25
Jak widać uzyskujemy wyższą wartość zysku dla opcji A. Zatem nasze rozwiązanie, które daje najlepsze zyski to => 2kg czynnika X i 3kg czynnika Y!
Na zakończenie
Problemom optymalizacyjnym nie ma końca – zwłaszcza, gdy rozmawiamy w kontekście biznesowym. Firmy stają przed wyzwaniami optymalizacyjnymi częściej, niż by chciały. W rezultacie sama metoda graficzna nie wystarczy do rozwiązania bardziej technicznych problemów optymalizacyjnych.
Musisz rozumieć ważne narzędzia lub języki programowania, aby pomyślnie przeprowadzić optymalizację liniową problemów z wieloma zmiennymi. Ale dobrą wiadomością jest to, że nie jest trudno opanować pracę nad odpowiednimi narzędziami lub językami programowania. Cała dziedzina nauki o danych jest bardzo przyjazna, co ułatwia ludziom z dowolnego środowiska budowanie kariery naukowej, jeśli są zainteresowani.
W upGrad prowadziliśmy studentów z całego świata z różnych środowisk i pomogliśmy im rozwinąć odpowiednią wiedzę teoretyczną i praktyczną niezbędną do odniesienia sukcesu w nauce o danych. Zapoznaj się z naszym Executive Post Graduate Program in Data Science , aby uzyskać więcej informacji na temat struktury naszego kursu, programu nauczania i przewagi upGrad!
1. Czy programowanie liniowe jest związane z programowaniem komputerowym?
Nie, programowanie liniowe odnosi się do przeprowadzania optymalizacji w warunkach ograniczeń. Nie jest to związane z programowaniem komputerowym w tradycyjnym tego słowa znaczeniu.
2. Kiedy najbardziej potrzebne jest programowanie liniowe?
Do optymalizacji niektórych zmiennych decyzyjnych przy różnych ograniczeniach potrzebne jest programowanie liniowe. Przydaje się podczas analiz predykcyjnych i pomaga firmom lepiej prognozować.
3. Czy programowanie liniowe musi być wykonywane ręcznie?
Nie, istnieją różne narzędzia – zarówno open-source, jak i inne – które mogą pomóc w wykonywaniu programowania liniowego.