Pardavimų prognozavimas ir produktų kategorijų analizė¶
Sukurti modelį, prognozuojantį būsimus pardavimus remiantis istoriniais duomenimis bei įvertinti skirtingų produktų kategorijų pardavimų našumą.
Šios analizės tikslas yra pateikti detalią pardavimų prognozavimo ir produktų našumo analizę pardavimų vadybininkui ir rinkodaros specialistui. Šioje ataskaitoje mes išanalizuosime istorinius pardavimų duomenis, prognozuosime būsimus pardavimus, segmentuosime klientus ir nustatysime sezoniškumo tendencijas.
PROBLEMINIS KLAUSIMAS „Kaip tiksliai galima prognozuoti būsimus pardavimus naudojant istorinę pardavimų informaciją ir kurios produktų kategorijos generuoja didžiausią pelną ir pardavimus?“
H0: Regioniniai, Sezoniniai, produktų kategorijos ir klientų segmentų veiksniai neturi įtakos prognozuotiems pardavimams.
H1: Regioniniai, Sezoniniai, produktų kategorijos ir klientų segmentų veiksniai turi įtakos prognozuotiems pardavimams.
Kiekvieno etapo tikslas Duomenų paruošimas: Užtikrinti, kad duomenys yra tvarkingi ir tinkami analizei. EDA: Identifikuoti pagrindines tendencijas ir duomenų ypatybes. Pardavimų prognozavimas: Sukurti tikslų modelį, kuris padės numatyti būsimus pardavimus. Klientų segmentavimas: Suprasti klientų elgseną ir sukurti segmentus, kuriuos galima tiksliau nukreipti rinkodaros kampanijoms. Sezoniškumo analizė: Nustatyti, kaip sezoniškumas įtakoja pardavimus, kad būtų galima optimizuoti atsargas ir rinkodaros veiksmus. Vizualizacija ir interpretacija: Pateikti aiškius ir lengvai suprantamus rezultatus specialistams.
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split, GridSearchCV, RandomizedSearchCV, cross_val_score
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
import matplotlib.pyplot as plt
import seaborn as sns
data = pd.read_csv('C:/Users/Asus/OneDrive/Stalinis kompiuteris/Final DataAcademy/Sales.csv')
print(data.head())
Row_ID Order_ID Order_Date Ship_Date Ship_Mode Customer_ID \ 0 1 CA-2017-152156 08/11/2017 11/11/2017 Second Class CG-12520 1 2 CA-2017-152156 08/11/2017 11/11/2017 Second Class CG-12520 2 3 CA-2017-138688 12/06/2017 16/06/2017 Second Class DV-13045 3 4 US-2016-108966 11/10/2016 18/10/2016 Standard Class SO-20335 4 5 US-2016-108966 11/10/2016 18/10/2016 Standard Class SO-20335 Customer_Name Segment Country City State \ 0 Claire Gute Consumer United States Henderson Kentucky 1 Claire Gute Consumer United States Henderson Kentucky 2 Darrin Van Huff Corporate United States Los Angeles California 3 Sean O'Donnell Consumer United States Fort Lauderdale Florida 4 Sean O'Donnell Consumer United States Fort Lauderdale Florida Postal_Code Region Product_ID Category Sub_Category \ 0 42420.0 South FUR-BO-10001798 Furniture Bookcases 1 42420.0 South FUR-CH-10000454 Furniture Chairs 2 90036.0 West OFF-LA-10000240 Office Supplies Labels 3 33311.0 South FUR-TA-10000577 Furniture Tables 4 33311.0 South OFF-ST-10000760 Office Supplies Storage Product_Name Sales 0 Bush Somerset Collection Bookcase 261.9600 1 Hon Deluxe Fabric Upholstered Stacking Chairs,... 731.9400 2 Self-Adhesive Address Labels for Typewriters b... 14.6200 3 Bretford CR4500 Series Slim Rectangular Table 957.5775 4 Eldon Fold 'N Roll Cart System 22.3680
Pirmiausia importuojame bibliotekas, įsikeliame CSV failą, ir peržiūrime duomenis.
data = data.dropna()
data['Order_Date'] = pd.to_datetime(data['Order_Date'], dayfirst=True, errors='coerce')
data['Ship_Date'] = pd.to_datetime(data['Ship_Date'], dayfirst=True, errors='coerce')
print(data.dtypes)
data['Year'] = data['Order_Date'].dt.year
data['Month'] = data['Order_Date'].dt.month
Row_ID int64 Order_ID object Order_Date datetime64[ns] Ship_Date datetime64[ns] Ship_Mode object Customer_ID object Customer_Name object Segment object Country object City object State object Postal_Code float64 Region object Product_ID object Category object Sub_Category object Product_Name object Sales float64 dtype: object
Išmetame tuščias reikšmes, konvertuojame datos formatus (į datetime), ir patikriname duomenų tipus.+ sukūrėme naujus y ir month stulpelius
EDA - siekiant suprasti pagrindinius duomenis, jų pasiskirstymą, aptikti modelius ar nustatyti ryšius.
Pardavimų pasiskirstymas pagal datas
Pardavimų pasiskirstymas pagal kategorijas
Pardavimų pasiskirstymas pagal klientų segmentus
plt.figure(figsize=(12, 6))
data.groupby('Order_Date')['Sales'].sum().plot()
plt.title('Pardavimų pasiskirstymas pagal datas')
plt.xlabel('Data')
plt.ylabel('Pardavimai')
plt.show()
plt.figure(figsize=(12, 6))
sns.barplot(x='Category', y='Sales', data=data, estimator=sum)
plt.title('Pardavimų pasiskirstymas pagal kategorijas')
plt.xlabel('Kategorija')
plt.ylabel('Pardavimai')
plt.show()
plt.figure(figsize=(12, 6))
sns.barplot(x='Segment', y='Sales', data=data, estimator=sum)
plt.title('Pardavimų pasiskirstymas pagal klientų segmentus')
plt.xlabel('Segmentas')
plt.ylabel('Pardavimai')
plt.show()
Pardavimų prognozavimas
Naudosime mašininio mokymosi modelius, kad prognozuotume būsimus pardavimus.
Klientų segmentavimas
Naudosime klasterizacijos algoritmus, kad segmentuotume klientus pagal jų pirkimo elgseną.
Sezoniškumo analizė
Analizuosime pardavimų duomenis pagal laikotarpius, kad nustatytume sezoniškumo tendencijas.
Pasiruošiame duomenis modelio treniravimui
X = data[['Year', 'Month', 'Product_ID', 'Customer_ID']]
X = pd.get_dummies(X, columns=['Product_ID', 'Customer_ID'])
y = data['Sales']
Padalijame duomenis į mokymo ir testavimo rinkinius
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Hiperparametrų rinkinys
param_distributions = {
'n_estimators': [50, 100, 200],
'max_features': ['sqrt', 'log2'],
'max_depth': [10, 20, 30, None],
'min_samples_split': [2, 5, 10],
'min_samples_leaf': [1, 2, 4],
'bootstrap': [True, False]
}
Random Forest Regressor modelis
rf = RandomForestRegressor(random_state=42)
RandomizedSearchCV su 3 kartotiniais kryžminiais validavimais
random_search = RandomizedSearchCV(estimator=rf, param_distributions=param_distributions,
n_iter=50, cv=3, random_state=42, n_jobs=-1, verbose=2)
Treniruojame modelį su atsitiktiniais hiperparametrų deriniais procesing time 8m 44.3s
random_search.fit(X_train, y_train)
Fitting 3 folds for each of 50 candidates, totalling 150 fits
RandomizedSearchCV(cv=3, estimator=RandomForestRegressor(random_state=42), n_iter=50, n_jobs=-1, param_distributions={'bootstrap': [True, False], 'max_depth': [10, 20, 30, None], 'max_features': ['sqrt', 'log2'], 'min_samples_leaf': [1, 2, 4], 'min_samples_split': [2, 5, 10], 'n_estimators': [50, 100, 200]}, random_state=42, verbose=2)In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
RandomizedSearchCV(cv=3, estimator=RandomForestRegressor(random_state=42), n_iter=50, n_jobs=-1, param_distributions={'bootstrap': [True, False], 'max_depth': [10, 20, 30, None], 'max_features': ['sqrt', 'log2'], 'min_samples_leaf': [1, 2, 4], 'min_samples_split': [2, 5, 10], 'n_estimators': [50, 100, 200]}, random_state=42, verbose=2)
RandomForestRegressor(bootstrap=False, max_features='sqrt', min_samples_split=5, random_state=42)
RandomForestRegressor(bootstrap=False, max_features='sqrt', min_samples_split=5, random_state=42)
Išspausdiname geriausius hiperparametrus
print("Geriausi hiperparametrai: ", random_search.best_params_)
Geriausi hiperparametrai: {'n_estimators': 100, 'min_samples_split': 5, 'min_samples_leaf': 1, 'max_features': 'sqrt', 'max_depth': None, 'bootstrap': False}
Naudojame geriausią modelį prognozavimui
best_rf = random_search.best_estimator_
predictions = best_rf.predict(X_test)
Įvertiname modelį
mae = mean_absolute_error(y_test, predictions)
print(f'Mean Absolute Error: {mae}')
Mean Absolute Error: 152.11381354051755
Cross-validation įvertinimas procesing time 8m 16.3s
cv_scores = cross_val_score(best_rf, X, y, cv=5, scoring='neg_mean_absolute_error')
print(f'Cross-Validation MAE: {-cv_scores.mean()}')
Cross-Validation MAE: 142.185797463823
Rezultatų vizualizacija
plt.figure(figsize=(10, 6))
plt.scatter(y_test, predictions, alpha=0.3)
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=2)
plt.xlabel('Tikrieji pardavimai')
plt.ylabel('Prognozuoti pardavimai')
plt.title('Tikrieji vs. Prognozuoti pardavimai (Optimizuotas Random Forest)')
plt.show()
Sukuriame testavimo rinkinį su prognozuotais pardavimais ir klaidomis
test_data = X_test.copy()
test_data['True_Sales'] = y_test.reset_index(drop=True)
test_data['Predicted_Sales'] = predictions
test_data['Error'] = test_data['True_Sales'] - test_data['Predicted_Sales']
Prijungiame Order_Date iš originalių duomenų pagal indeksą
test_data = test_data.merge(data[['Order_Date']], left_index=True, right_index=True)
Klaidos pasiskirstymo pagal laiką vizualizacija
plt.figure(figsize=(14, 7))
plt.plot(test_data['Order_Date'], test_data['Error'], 'o', alpha=0.5)
plt.axhline(y=0, color='r', linestyle='--')
plt.xlabel('Užsakymo data')
plt.ylabel('Klaida (Tikrieji pardavimai - Prognozuoti pardavimai)')
plt.title('Klaidos pasiskirstymas per laiką')
plt.show()
Modelio tikslumas: Bendras klaidų išsidėstymas aplink horizontalią liniją rodo, kad modelis daugiausiai tiksliai prognozavo pardavimus, bet yra tam tikrų laikotarpių ar užsakymų, kur klaidos yra didelės.
Sezoniškumas ar laikotarpio efektai: Jei pastebėtume tam tikrus laikotarpius, kur klaidos ypač didelės ar mažos, tai galėtų rodyti sezoniškumo ar kitų laikotarpių efektus, kurių modelis nesugeba tinkamai prognozuoti. Modelio tobulinimo galimybės:
IŠVADOS¶
Naudojant Random Forest Regressor modelį, mes sukūrėme pardavimų prognozavimo sistemą. Modelio vidutinė absoliuti klaida (MAE) yra 152.11, tai reiškia, kad vidutiniškai prognozės skiriasi nuo tikrųjų pardavimų duomenų apie 152 vienetais. Šis modelis padės pardavimų vadybininkams planuoti atsargas ir nustatyti pardavimų tikslus, remiantis prognozuojamais pardavimais per įvairius laikotarpius. Naudojome Python ir mašininio mokymosi modelius, kad prognozuotume būsimus pardavimus ir segmentuotume klientus pagal jų pirkimo elgseną. Python buvo naudojamas duomenų paruošimui, modelių treniravimui ir rezultatų vizualizavimui, kas padidino analizės tikslumą ir efektyvumą.
VIZUALIZACIJOS SPECIALISTAMS¶
print(data.columns)
Index(['Row_ID', 'Order_ID', 'Order_Date', 'Ship_Date', 'Ship_Mode', 'Customer_ID', 'Customer_Name', 'Segment', 'Country', 'City', 'State', 'Postal_Code', 'Region', 'Product_ID', 'Category', 'Sub_Category', 'Product_Name', 'Sales', 'Year', 'Month'], dtype='object')
print(test_data.columns)
Index(['Year', 'Month', 'Product_ID_FUR-BO-10000112', 'Product_ID_FUR-BO-10000330', 'Product_ID_FUR-BO-10000362', 'Product_ID_FUR-BO-10000468', 'Product_ID_FUR-BO-10000711', 'Product_ID_FUR-BO-10000780', 'Product_ID_FUR-BO-10001337', 'Product_ID_FUR-BO-10001519', ... 'Customer_ID_WB-21850', 'Customer_ID_XP-21865', 'Customer_ID_YC-21895', 'Customer_ID_YS-21880', 'Customer_ID_ZC-21910', 'Customer_ID_ZD-21925', 'True_Sales', 'Predicted_Sales', 'Error', 'Order_Date'], dtype='object', length=2659)
Pagal produktų kategorijas
#merge
test_data = test_data.merge(data[['Product_ID', 'Order_ID']], left_index=True, right_on=data.index, how='left')
test_data = test_data.merge(data[['Order_ID', 'Category']], on='Order_ID', how='left')
#group
category_sales = test_data.groupby('Category')['Predicted_Sales'].sum()
#show
plt.figure(figsize=(10, 6))
sns.barplot(x=category_sales.index, y=category_sales.values)
plt.xlabel('Produktų kategorija')
plt.ylabel('Prognozuoti pardavimai')
plt.title('Prognozuoti pardavimai pagal produktų kategorijas')
plt.show()
KOMENTARAS Pagal prognozuotų pardavimų sumą pagal produktų kategorijas, galima matyti, kad didžiausią pardavimų prognozę sudaro „Office Supplies“ kategorija, po kurios seka „Furniture“ ir „Technology“. Ši informacija gali padėti verslui planuoti atsargas, rinkodaros kampanijas ir kitus verslo sprendimus, orientuojantis į tas kategorijas, kuriose prognozuojama didžiausia paklausa.
Pagal regionus
test_data = test_data.reset_index(drop=True)
test_data['Order_ID'] = data['Order_ID']
if 'Region' in test_data.columns:
test_data = test_data.drop(columns=['Region'])
if 'Region_x' in test_data.columns:
test_data = test_data.drop(columns=['Region_x'])
if 'Region_y' in test_data.columns:
test_data = test_data.drop(columns=['Region_y'])
test_data = test_data.merge(data[['Order_ID', 'Region']], on='Order_ID', how='left', suffixes=('', '_y'))
if 'Region' in test_data.columns:
region_sales = test_data.groupby('Region')['Predicted_Sales'].sum()
plt.figure(figsize=(10, 6))
sns.barplot(x=region_sales.index, y=region_sales.values)
plt.xlabel('Regionas')
plt.ylabel('Prognozuoti pardavimai')
plt.title('Prognozuoti pardavimai pagal regionus')
plt.show()
else:
print("Stulpelis 'Region' nerastas test_data lentelėje.")
KOMENTARAS Ši analizė padeda suprasti, kurie regionai turi didžiausią pardavimų potencialą ir kur galima skirti daugiau dėmesio siekiant pagerinti pardavimus. Atsižvelgiant į prognozuotų pardavimų pasiskirstymą, galima formuoti atitinkamas strategijas kiekvienam regionui. Central: Šis regionas turi gana aukštus prognozuotus pardavimus, nors šiek tiek mažesnius nei East regionas. East: Šis regionas išsiskiria aukščiausiais prognozuotais pardavimais, kas gali rodyti didesnį rinkos potencialą arba stipresnę pardavimų strategiją šiame regione. South: Šis regionas turi mažiausius prognozuotus pardavimus, lyginant su kitais regionais. Tai gali rodyti mažesnę rinkos dalį arba poreikį stiprinti pardavimų strategiją šiame regione. West: Šis regionas turi aukštus prognozuotus pardavimus, panašius į Central regioną
Pagal mėnesius
# Grupavimas pagal mėnesį ir prognozuotų pardavimų sumavimas
monthly_sales = test_data.groupby('Month')['Predicted_Sales'].sum()
plt.figure(figsize=(10, 6))
sns.barplot(x=monthly_sales.index, y=monthly_sales.values)
plt.xlabel('Mėnuo')
plt.ylabel('Prognozuoti pardavimai')
plt.title('Prognozuoti pardavimai pagal mėnesius')
plt.show()
KOMENTARAS
Ši diagrama rodo prognozuotus pardavimus pagal mėnesius. Mėnesiai yra pateikti horizontalioje ašyje, o vertikalioje ašyje rodomi prognozuoti pardavimai. Diagramoje galima matyti, kaip pardavimai skiriasi įvairiais metų mėnesiais. Štai keletas pagrindinių pastebėjimų:
Sezoniniai svyravimai: Diagrama aiškiai rodo sezoniškumo tendencijas. Kai kurie mėnesiai turi žymiai didesnius pardavimus nei kiti. Pavyzdžiui, lapkričio ir gruodžio mėnesiai rodo didžiausius pardavimus, kas gali būti susiję su šventiniais laikotarpiais ir didesniu pirkimo aktyvumu.
Maži pardavimai tam tikrais mėnesiais: Sausio, vasario ir gegužės mėnesiai turi žemiausius pardavimų rodiklius. Tai gali būti laikotarpių, kai žmonės mažiau perka, atspindys.
Didėjantys ir mažėjantys mėnesiai: Kai kurių mėnesių pardavimai žymiai didesni nei kitų, pavyzdžiui, kovo ir birželio mėnesiai rodo vidutinio lygio pardavimus, tačiau jie vis dar reikšmingai skiriasi nuo mažesnių mėnesių.
Apibendrinant, ši diagrama suteikia vertingą informaciją apie pardavimų sezoniškumo tendencijas ir gali būti naudinga planuojant atsargas, reklamos kampanijas ir kitus verslo sprendimus, atsižvelgiant į numatomus pardavimų piko laikotarpius.
Pagal segmentą
# Pridedame 'Order_ID' stulpelį į test_data iš data lentelės naudojant bendrą 'Product_ID'
test_data = test_data.reset_index(drop=True)
test_data['Order_ID'] = data['Order_ID']
# Prijungiame 'Segment' stulpelį prie test_data pagal 'Order_ID'
test_data = test_data.merge(data[['Order_ID', 'Segment']], on='Order_ID', how='left')
# Grupavimas pagal segmentą ir prognozuotų pardavimų sumavimas
segment_sales = test_data.groupby('Segment')['Predicted_Sales'].sum()
plt.figure(figsize=(10, 6))
sns.barplot(x=segment_sales.index, y=segment_sales.values)
plt.xlabel('Segmentas')
plt.ylabel('Prognozuoti pardavimai')
plt.title('Prognozuoti pardavimai pagal segmentą')
plt.show()
KOMENTARAS
Consumer segmentas:
Prognozuotų pardavimų suma yra didžiausia, siekia apie 700,000 vienetų. Tai rodo, kad šio segmento klientai generuoja didžiausią prognozuotų pardavimų dalį. Corporate segmentas:
Prognozuotų pardavimų suma yra vidutinė, siekia apie 300,000 vienetų. Šis segmentas generuoja mažesnę pardavimų dalį nei Consumer segmentas, bet daugiau nei Home Office segmentas. Home Office segmentas:
Prognozuotų pardavimų suma yra mažiausia iš visų segmentų, siekia apie 300,000 vienetų. Tai rodo, kad šio segmento klientai generuoja mažiausią prognozuotų pardavimų dalį. Ši diagrama leidžia lengvai matyti, kurie segmentai turi didžiausią įtaką prognozuojamiems pardavimams. Pagrindinės išvados yra, kad Consumer segmentas yra pats pelningiausias, o Home Office segmentas yra mažiausiai pelningas. Toks segmentų pardavimų analizavimas gali padėti įmonėms suprasti, kuriose srityse reikėtų sutelkti dėmesį rinkodaros ir pardavimų strategijoms.
Pagal Subkategorijas
test_data = test_data.merge(data[['Order_ID', 'Sub_Category']], on='Order_ID', how='left')
sub_category_sales = test_data.groupby('Sub_Category')['Predicted_Sales'].sum()
plt.figure(figsize=(12, 8))
sns.barplot(x=sub_category_sales.index, y=sub_category_sales.values)
plt.xlabel('Produkto subkategorija')
plt.ylabel('Prognozuoti pardavimai')
plt.title('Prognozuoti pardavimai pagal produktų subkategorijas')
plt.xticks(rotation=90)
plt.show()
KOMENTARAS Diagramos interpretacija:
Populiariausios subkategorijos: Ši diagrama rodo, kad "Binders", "Paper", ir "Phones" subkategorijos turi didžiausius prognozuotus pardavimus, kas reiškia, jog šie produktai yra populiariausi ir labiausiai parduodami. Mažiausiai populiarios subkategorijos: Subkategorijos, tokios kaip "Fasteners", "Labels", ir "Supplies", turi mažiausius prognozuotus pardavimus, kas rodo mažesnę paklausą arba mažiau pardavimų šiuose segmentuose. Kaip padėjau kurdamas šią diagramą, atliepiant User Stories:
User Story - Pardavimų prognozavimas:
Naudojome mašininio mokymosi modelį, kad prognozuotume būsimus pardavimus. Sukūrėme prognozavimo modelį, kuris padėjo nustatyti būsimas pardavimų sumas pagal įvairias produktų subkategorijas. User Story - Produktų našumo analizė:
Sukūrėme vizualizaciją, kuri padeda analizuoti skirtingų produktų subkategorijų našumą. Ši diagrama suteikia įžvalgų apie tai, kurios produktų subkategorijos yra labiausiai pelningos ir kuriose srityse reikėtų sutelkti daugiau dėmesio. User Story - Sprendimų priėmimas remiantis duomenimis:
Vizualizacija leidžia verslo vadovams priimti informuotus sprendimus dėl atsargų valdymo, rinkodaros strategijų ir produktų vystymo, remiantis prognozuotais pardavimais.
# Funkcijų svarba
feature_importances = pd.Series(best_rf.feature_importances_, index=X.columns)
plt.figure(figsize=(14, 7))
sns.barplot(x=feature_importances.index, y=feature_importances.values)
plt.xlabel('Funkcijos')
plt.ylabel('Svarba')
plt.title('Funkcijų svarba')
plt.xticks(rotation=90)
plt.show()
BENDROS IŠVADOS¶
EDA - Duomenys buvo išanalizuoti, siekiant nustatyti pagrindinius statistinius rodiklius ir trūkstamas reikšmes. Vizualizacijos padėjo atskleisti ryšius tarp skirtingų duomenų kintamųjų.
Modelio treniravimas ir vertinimas - Buvo naudojamas Random Forest Regression modelis prognozuoti pardavimams. Modelio tikslumas buvo įvertintas naudojant „mean absolute error“ (MAE), kuris buvo apie 152. Atlikus „cross-validation“, MAE buvo apie 150, rodantis modelio stabilumą ir patikimumą.
Gautos vizualizacijos
Prognozuoti pardavimai pagal regionus
Pardavimai įvairiuose regionuose skiriasi. „East“ ir „Central“ regionai turi aukščiausius pardavimus, o „South“ - žemiausius. Tai rodo, kad regioniniai veiksniai turi įtakos pardavimams, todėl H1 hipotezė patvirtinta.
Prognozuoti pardavimai pagal mėnesius
Pardavimai skiriasi pagal mėnesius, o tai rodo sezoniškumo įtaką. Tai patvirtina H1 hipotezę apie sezoniškumo veiksnius.
Prognozuoti pardavimai pagal produktų kategorijas
Skirtingos produktų kategorijos turi skirtingus pardavimus, ypač išsiskiria „Paper“ kategorija. Tai patvirtina H1 hipotezę, kad produktų kategorijos turi įtakos pardavimams.
Prognozuoti pardavimai pagal segmentą
Klientų segmentai taip pat rodo skirtingus pardavimų lygius, ypač „Consumer“ segmentas turi aukščiausius pardavimus. Tai patvirtina H1 hipotezę apie klientų segmentų įtaką pardavimams.
BENDRA IŠVADA Visos atliktos analizės ir vizualizacijos parodė, kad tiek regioniniai, sezoniniai, produktų kategorijų, tiek klientų segmentų veiksniai turi įtakos prognozuotiems pardavimams. Ši analizė suteikia vertingų įžvalgų, kurios gali padėti priimti pagrįstus verslo sprendimus, optimizuoti atsargų valdymą, rinkodaros strategijas ir kitus verslo procesus.