Logo Zephyrnet

Chiến lược MLOps để chuyển đổi bán hàng thành công

Ngày:

Giới thiệu

ChatGPT

Trong bối cảnh năng động của doanh nghiệp hiện đại, sự giao thoa giữa học máy và vận hành (MLOps) đã nổi lên như một động lực mạnh mẽ, định hình lại các phương pháp tiếp cận truyền thống để tối ưu hóa chuyển đổi bán hàng. Bài viết sẽ đưa bạn vào vai trò biến đổi mà chiến lược MLOps đóng trong việc cách mạng hóa thành công chuyển đổi bán hàng. Khi các doanh nghiệp cố gắng nâng cao hiệu quả và tăng cường tương tác với khách hàng, việc tích hợp các kỹ thuật máy học vào hoạt động sẽ chiếm vị trí trung tâm. Cuộc khám phá này tiết lộ các chiến lược đổi mới thúc đẩy MLOps để không chỉ hợp lý hóa quy trình bán hàng mà còn mở ra thành công chưa từng có trong việc chuyển đổi khách hàng tiềm năng thành khách hàng trung thành. Hãy tham gia cùng chúng tôi trong cuộc hành trình xuyên qua những phức tạp của MLOps và khám phá cách ứng dụng chiến lược của nó đang định hình lại bối cảnh chuyển đổi doanh số bán hàng.

Chiến lược MLOps | Chuyển đổi bán hàng thành công

Mục tiêu học tập

  • Tầm quan trọng của mô hình tối ưu hóa bán hàng
  • Làm sạch dữ liệu, chuyển đổi tập dữ liệu và tiền xử lý tập dữ liệu
  • Xây dựng tính năng phát hiện gian lận toàn diện bằng Kedro và Deepcheck
  • Triển khai mô hình sử dụng Streamlit và ôm mặt

Bài báo này đã được xuất bản như một phần của Blogathon Khoa học Dữ liệu.

Mục lục

Mô hình tối ưu hóa bán hàng là gì?

Mô hình tối ưu hóa bán hàng là mô hình học máy từ đầu đến cuối nhằm tối đa hóa doanh số bán sản phẩm và cải thiện tỷ lệ chuyển đổi. Mô hình lấy một số thông số làm đầu vào như số lần hiển thị, nhóm tuổi, giới tính, Tỷ lệ nhấp và Giá mỗi lần nhấp. Sau khi bạn đào tạo, mô hình sẽ dự đoán số lượng người sẽ mua sản phẩm sau khi xem quảng cáo.

Điều kiện tiên quyết cần thiết

1) Sao chép kho lưu trữ

git clone https://github.com/ashishk831/Final-THC.git
cd Final-THC

2) Tạo và kích hoạt môi trường ảo

#create a virtual environment
python3 -m venv SOP
#Activate your virtual environment in your project folder
source SOP/bin/activate
pip install -r requirements.txt

4)Cài đặt Kedro, Kedro-viz, Streamlit và Deepcheck

pip install streamlit
pip install Deepcheck
pip install Kedro
pip install Kedro-viz

mô tả dữ liệu

Hãy để chúng tôi thực hiện Phân tích dữ liệu cơ bản bằng cách sử dụng triển khai Python trên tập dữ liệu từ Kaggle. Để tải xuống tập dữ liệu, hãy nhấp vào tại đây.

import pandas as pd
import numpy as np
df = pd.read_csv('KAG_conversion_data.csv')
df.head()
image.png
image.png
Cột Mô tả
ad_id ID duy nhất cho mỗi quảng cáo
xyz_chiến dịch_id ID được liên kết với từng chiến dịch quảng cáo của công ty XYZ
fb_chiến dịch_id ID liên quan đến cách Facebook theo dõi từng chiến dịch
tuổi Độ tuổi của người được hiển thị quảng cáo
giới Giới tính của người muốn thêm được hiển thị
quan tâm một mã chỉ định danh mục sở thích của người đó (sở thích được đề cập trong hồ sơ công khai trên Facebook của người đó)
Ấn tượng số lần quảng cáo được hiển thị.
Nhấp chuột Số lần nhấp chuột vào quảng cáo đó.
Bỏ ra Số tiền mà công ty xyz trả cho Facebook để hiển thị quảng cáo đó
Tổng số:
Chuyển đổi
Tổng số:
số người hỏi về sản phẩm sau khi xem quảng cáo
Được chấp thuận
Chuyển đổi
Tổng số:
số người đã mua sản phẩm sau khi xem quảng cáo

Đây là “Chuyển đổi được phê duyệt” là cột mục tiêu. Của chúng tôi
Mục tiêu là thiết kế một mô hình giúp tăng doanh số bán sản phẩm khi mọi người nhìn thấy
quảng cáo.

Phát triển mô hình bằng Kedro

Để xây dựng dự án này từ đầu đến cuối, chúng tôi sẽ sử dụng công cụ Kedro. Kedro, là một công cụ nguồn mở được sử dụng để xây dựng mô hình máy học sẵn sàng sản xuất, mang lại một số lợi ích.

  • Xử lý sự phức tạp: Nó cung cấp một cấu trúc để kiểm tra dữ liệu có thể được đưa vào sản xuất sau khi thử nghiệm thành công.
  • Tiêu chuẩn hoá: Nó cung cấp mẫu tiêu chuẩn cho dự án. Làm cho người khác dễ hiểu hơn.
  • Sản xuất-Sẵn sàng: Mã có thể dễ dàng được đưa vào sản xuất với mã khám phá mà bạn có thể chuyển đổi sang các thử nghiệm mô-đun, có thể duy trì và tái tạo.

Tìm hiểu thêm: Hướng dẫn sử dụng Kedro Framework

Cấu trúc đường ống

Để tạo một dự án trong Kedro, hãy làm theo các bước dưới đây.

#create project
kedro new

#create pipeline
kedro pipeline create <pipeline-name>

#Run kedro
kedro run

#Visualizing pipeline
kedro viz

Sử dụng kedro, chúng tôi sẽ thiết kế đường dẫn mô hình từ đầu đến cuối như hiển thị bên dưới.

localhost:Kedro-viz
localhost:Kedro-viz

Xử lý dữ liệu

  • Kiểm tra các giá trị còn thiếu và xử lý chúng.
  • Tạo hai cột mới CTR và CPC.
  • Chuyển đổi biến cột thành số.
import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder

def preprocessing(data: pd.DataFrame):    
    data.gender = data.gender.apply(lambda x: 1 if x=="M" else 0)
    data['CTR'] = ((data['Clicks']/data['Impressions'])*100)
    data['CPC'] = data['Spent']/data['Clicks']
    data['CPC'] = data['CPC'].replace(np.nan,0)
    encoder=LabelEncoder()
    encoder.fit(data["age"])
    data["age"]=encoder.transform(data["age"])
    #data.Approved_Conversion = data.Approved_Conversion.apply(lambda x: 0 if x==0 else 1)
    preprocessed_data = data.copy()
    
    return preprocessed_data

Tách dữ liệu

import pandas as pd
from sklearn.model_selection import train_test_split

def split_data(processed_data: pd.DataFrame):
    X = processed_data[['ad_id', 'age', 'gender', 'interest', 'Spent', 
    'Total_Conversion','CTR', 'CPC']]
    y = processed_data["Approved_Conversion"]
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, 
    random_state=42)
    return X_train, X_test, y_train, y_test

Ở trên tập dữ liệu được chia thành tập dữ liệu huấn luyện và tập dữ liệu thử nghiệm cho mục đích huấn luyện mô hình.

Đào tạo người mẫu

from sklearn.ensemble import RandomForestRegressor


def train_model(X_train, y_train):
    
    model = RandomForestRegressor(n_estimators = 50, random_state = 0, max_samples=0.75)
    
    model.fit(X_train, y_train)
    return model

Chúng tôi sẽ sử dụng mô-đun RandomForestRegressor để đào tạo mô hình. Riêng với RandomForestRegressor, chúng tôi đang chuyển tham số khác như n_estimators ngẫu nhiên_state và max_samples.

Đánh giá

import numpy as np
import logging
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error, max_error


def evaluate_model(model, X_test, y_test):
    y_pred = model.predict(X_test)
    mae=mean_absolute_error(y_test, y_pred)
    mse=mean_squared_error(y_test, y_pred)
    rmse=np.sqrt(mse)
    r2score=r2_score(y_test, y_pred)
    me = max_error(y_test, y_pred)
    print("MAE Of Model is: ",mae)
    print("MSE Of Model is: ",mse)
    print("RMSE Of Model is: ",rmse)
    print("R2_Score Of Model is: ",r2score)
    logger = logging.getLogger(__name__)
    logger.info("Model has a coefficient R^2 of %.3f on test data.", r2score)
    return {"r2_score": r2score, "mae": mae, "max_error": me}

Sau khi đào tạo mô hình, mô hình sẽ được đánh giá bằng cách sử dụng một số số liệu chính như MAE, MSE, RMSE và điểm R2.

Trình theo dõi thí nghiệm

Để theo dõi hiệu suất của mô hình và chọn mô hình tốt nhất, chúng tôi sẽ sử dụng trình theo dõi thử nghiệm. Chức năng của trình theo dõi thử nghiệm là lưu tất cả thông tin về thử nghiệm khi ứng dụng được chạy. Để bật trình theo dõi thử nghiệm trong Kedro, chúng tôi có thể cập nhật tệp catalog.xml. Thông số được phiên bản cần phải được đặt Đúng. Dưới đây là ví dụ

model:
  type: pickle.PickleDataSet
  filepath: data/06_models/model.pkl
  backend: pickle
  versioned: True

Điều này giúp theo dõi kết quả mô hình và lưu phiên bản mô hình. Ở đây, chúng tôi sẽ sử dụng trình theo dõi thử nghiệm ở bước đánh giá để theo dõi hiệu suất của mô hình trong giai đoạn phát triển.

Khi mô hình được thực thi, nó sẽ tạo ra các số liệu đánh giá khác nhau như điểm MAE, MSE, RMSE và R2 cho dấu thời gian khác nhau như hiển thị trong hình ảnh. Trên cơ sở các số liệu đánh giá trên, mô hình tốt nhất có thể được lựa chọn.

Trình theo dõi thí nghiệm | Chiến lược MLOps | Chuyển đổi bán hàng thành công
Địa phương: Kedro-viz

Deepcheck: Để giám sát dữ liệu và mô hình

Khi mô hình được triển khai trong sản xuất, có khả năng chất lượng dữ liệu sẽ thay đổi theo thời gian và do hiệu suất của mô hình này cũng có thể thay đổi. Để khắc phục sự cố này, chúng ta cần theo dõi dữ liệu trong môi trường sản xuất. Để làm điều này, chúng tôi sẽ sử dụng công cụ mã nguồn mở Deepcheck. Deepcheck có các thư viện sẵn có như Label-drift và Feature-Drift có thể dễ dàng tích hợp với mã mô hình.

  • FeatureDrift: – Sự trôi dạt có nghĩa là sự thay đổi trong việc phân phối dữ liệu theo thời gian do hiệu suất của mô hình bị suy giảm. FeaturDift có nghĩa là đã xảy ra thay đổi trong một tính năng duy nhất của tập dữ liệu.
  • Labeldrift: – Labeldrift xảy ra khi nhãn sự thật cơ bản cho một tập dữ liệu thay đổi theo thời gian. Nó chủ yếu xảy ra do sự thay đổi trong tiêu chí nhãn.

Tích hợp dự đoán và giám sát mô hình với Streamlit

Bây giờ chúng ta sẽ xây dựng giao diện người dùng để tương tác với mô hình đưa ra dự đoán về các tham số đầu vào đã cho nhằm kiểm tra tỷ lệ chuyển đổi.

import streamlit as st
import pandas as pd
import joblib
import numpy as np 

st.sidebar.header("Model Prediction or Report")

selected_report = st.sidebar.selectbox("Select from below", ["Model Prediction",
"Data Integrity","Feature Drift", "Label Drift"])

if selected_report=="Model Prediction":
        st.header("Sales Optimization Model")
        #def predict(ad_id, age, gender, interest, Impressions, Clicks, Spent, 
        #Total_Conversion, CTR, CPC):
        def predict(ad_id, age, gender, interest,  Spent, Total_Conversion, CTR, CPC):
            if gender == 'Male':
                gender = 0
            else:
                gender = 1
            ad_id = int(ad_id)
            age = int(age)
            gender = int(gender)
            interest = int(interest)
            #Impressions = int(Impressions)
            #Clicks = int(Clicks)
            Spent = float(Spent)
            Total_Conversion = int(Total_Conversion)
            CTR = float(CTR*0.000001)
            CPC = float(CPC)
 
            input=np.array([[ad_id, age, gender, interest, Spent, 
            Total_Conversion, CTR, CPC]]).astype(np.float64)
    
        
            model = joblib.load('model/model.pkl')
    # Make prediction
            prediction = model.predict(input)
            prediction= np.round(prediction)
    # Return the predicted value for Approved_Conversion 
            return prediction
        
        ad_id = st.number_input('Enter the advertisement ID',min_value = 0)
        age = st.number_input('Enter the target age stoup',min_value = 0)
        gender = st.radio("Gender",('Male','Female'))
        interest = st.selectbox('Interest', [2, 7, 10, 15, 16, 18, 19, 20, 21, 22, 23,
         24, 25, 
                        26, 27, 28, 29, 30, 31, 32, 36, 63, 64, 65, 66, 100, 101, 102, 
                        103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114])
        #Impressions = st.number_input('Enter the number of impressions',min_value = 0)
        #Clicks = st.number_input('Enter the number of clicks',min_value = 0)
        Spent = st.number_input('Enter the amount spent on the ad',min_value = 0)
        Total_Conversion = st.number_input('Enter the total conversion count',
        min_value = 0)
        CTR = st.number_input('Enter the Click-Through Rate',min_value = 0)
        CPC = st.number_input('Enter the Cost Per Click',min_value = 0)

        if st.button("Predicted Approved Conversion"): 
             output = predict(ad_id, age, gender, interest, Spent, Total_Conversion, 
             CTR, CPC)
             st.success("Approved Conversion Rate  :{}".format(output)) 
else:
    st.header("Sales Model Monitoring Report")
    report_file_name = "report/"+ selected_report.replace(" ", "") + ".html"
    HtmlFile = open(report_file_name, 'r', encoding='utf-8')
    source_code = HtmlFile.read() 
    st.components.v1.html(source_code, width=1200, height=1500, scrolling=True)

Demo ứng dụng HuggingFace | Chiến lược MLOps | Chuyển đổi bán hàng thành công
Máy chủ cục bộ:streamlit

Triển khai bằng HuggingFace

Bây giờ chúng ta đã xây dựng được mô hình tối ưu hóa hoạt động bán hàng từ đầu đến cuối, chúng ta sẽ triển khai mô hình đó bằng HuggingFace. Trong ôm mặt, chúng ta cần định cấu hình tệp README.md để triển khai mô hình. Huggingface chăm sóc CI/CD. Vì bất cứ khi nào có thay đổi trong tệp, nó sẽ theo dõi các thay đổi và triển khai lại ứng dụng. Dưới đây là cấu hình tệp readme.md.

title: {{Sale-str-opt}}
emoji: {{Sale-str-opt}}
colorFrom: {{colorFrom}}
colorTo: {{colorTo}}
sdk: {{sdk}}
sdk_version: {{sdkVersion}}
app_file: app.py
pinned: false

Demo ứng dụng HuggingFace

Demo ứng dụng HuggingFace | Chiến lược MLOps | Chuyển đổi bán hàng thành công
https://huggingface.co/spaces/ashishk566/sales-str-opt

Đối với phiên bản đám mây, hãy nhấp vào tại đây.

Kết luận

  • Các ứng dụng học máy có thể đưa ra tỷ lệ chuyển đổi thử nghiệm ở thị trường chưa xác định, giúp doanh nghiệp biết nhu cầu sản phẩm.
  • Việc sử dụng mô hình tối ưu hóa hoạt động kinh doanh có thể nhắm mục tiêu đến nhóm đối tượng phù hợp của họ.
  • Ứng dụng này giúp tăng doanh thu kinh doanh.
  • Giám sát dữ liệu trong thời gian thực cũng có thể giúp theo dõi sự thay đổi mô hình và thay đổi hành vi của người dùng.

Những câu hỏi thường gặp

Q1. Mục đích của mô hình tối ưu hóa bán hàng là gì?

A. Mục đích của mô hình tối ưu hóa việc bán hàng là dự đoán số lượng khách hàng sẽ mua sản phẩm sau khi xem quảng cáo.

Q2. Tại sao chúng ta cần theo dõi dữ liệu?

A. Giám sát dữ liệu giúp theo dõi hành vi của tập dữ liệu và mô hình.

Q3. Ôm mặt có được sử dụng miễn phí không?

A. Có, ôm mặt được sử dụng miễn phí với tính năng cơ bản 2 vCPU, RAM 16 GB.

Q4. Có quy tắc cụ thể nào cho việc lựa chọn báo cáo ở giai đoạn giám sát mô hình không?

A. Không có quy tắc nghiêm ngặt nào cho việc lựa chọn báo cáo ở giai đoạn giám sát mô hình, deepcheck có nhiều thư viện sẵn có như mô hình trôi dạt, sai lệch phân phối.

Q5. Streamlit hữu ích như thế nào?

A. Streamlit giúp triển khai cục bộ, giúp sửa lỗi trong giai đoạn phát triển.

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định riêng của Tác giả.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img