GH GambleHub

기능 공학 및 기능 선택

1) 목적과 원칙

목표: 오프라인과 온라인간에 합의 된 안정적이고 해석 가능하며 경제적 인 기능을 구축합니다.

원칙:
  • 시점: 기능은 솔루션 시점에 사용 가능한 데이터에서 미래없이 계산됩니다 (누설 방지).
  • 도메인 우선: 기능은 비즈니스 메커니즘 (예금, 세션, 게임 장르, RG/AML) 을 반영합니다.
  • 재사용 및 계약: Feature Store 버전, 소유자, 공식 및 SLO.
  • 비용 인식: 대기 시간과 컴퓨팅/저장 비용은 투자 회수 만 구체화한다고 생각합니다.
  • 관찰 가능성: 드리프트/안정성/보정 모니터; 온라인/오프라인 동등성 테스트.

2) iGaming의 특성 분류

RFM/행동: 창문 별 휴식/주파수/금전 (10m/1h/1d/7d/30d).
세션: 지속 시간, 일시 정지, 장치 변경/ASN, 작동 속도.
재무: 예금/인출/차지, 지불 방법 주식, FX 정규화.
게임: 장르 프로필, 공급자 변동성, RTP 클러스터, 행진.
마케팅: 채널/UTM, 캠페인 응답, 채도/쿨 다운.
RG/AML: 한계, 자체 제외 플래그, 속도 패턴, BIN/IP 재사용.
지리/시간: 현지 달력/공휴일, 벨트 시간, 저녁/밤.
그래프: 사용자 카드 장치 -ip 링크, 중앙 성/구성 요소, 사기 링.
NLP/텍스트: 티켓/채팅의 테마 및 톤; 주요 불만.
운영: 지연/제공자 오류, 세션 안정성 (SRE 모델 용).


3) 창과 집계 (포인트 인 타임)

일반적인 창문: 10m/1h/24h/7d/30d. 각 창에 대해-카운트/sum/mean/std/last/max/min, 비율 및 비율.

SQL 템플릿 (30d 예금, 미래 없음):
sql
SELECT u.user_pseudo_id, t.asof,
SUM(CASE WHEN e.type='deposit'
AND e.event_time>=t.asof - INTERVAL '30' DAY
AND e.event_time< t.asof THEN e.amount_base ELSE 0 END) AS dep_30d,
COUNT(CASE WHEN e.type='bet'
AND e.event_time>=t.asof - INTERVAL '7' DAY
AND e.event_time< t.asof THEN 1 END) AS bets_7d
FROM silver.fact_events e
JOIN (SELECT user_pseudo_id, DATE(event_time) AS asof
FROM silver.fact_events GROUP BY 1,2) t USING(user_pseudo_id)
JOIN dim.users_scd u ON u.user_pseudo_id=t.user_pseudo_id
AND t.asof >= u.valid_from AND (u.valid_to IS NULL OR t.asof < u.valid_to)
GROUP BY 1,2;

4) 범주 인코딩

One-Hot/Hashing: 희귀/하이 카디널 카테고리 (게임, 제공 업체).
대상 인코딩 (TE): k-fold/leave-one-out 및 시간 인식 방지 누출이있는 대상 평균.
WOE/IV (위험 점수): IV 제어 및 안정성을 갖춘 단조 쓰레기통.

TE (의사 코드, 시간 인식):
python for fold in time_folds:
train_idx, val_idx = split_by_time(fold)
te_map = target_mean(train[["provider_id","label"]])
val["provider_te"] = val["provider_id"].map(te_map).fillna(global_mean)

5) 정규화 및 스케일링

Min-max/Robust/Z- 스코어-교육 기간; 아티팩트에 매개 변수를 저장합니다.
롱섬/베팅 테일에 대한 로그 변환.
Box-Cox/Yeo-Johnson-대칭이 필요한 경우.


6) 임시 및 계절 기능

일정: 요일, 시간, 시장 공휴일 (수정 달력), 유료 일.
주파수: 이동 평균/엑스폰. 스무딩 (EMA), 델타 (t-t-1).
이벤트 기반: 마지막 예금/승/손실, "냉각" 이후 시간.


7) 그래프 기능 (사기/AML)

정점: 사용자/카드/장치/ip. 가장자리: 거래/세션/공동 특성.
기능: 구성 요소 크기, 정도, 약점, 호출기, 트라이어드, 재현.
패턴: 야간 배치는 그래프 → 임베딩/중심성 → 온라인 캐시를 구축합니다.


8) NLP 기능 (지원/채팅/리뷰)

기본: TF-IDF/NMF 주제, 정서, 길이, 불만 빈도.
고급: 임베딩 (문장 -BERT) → 창당 티켓 평균.
PII: 정책 별 마스킹 전 및 후 (이메일, PAN, 전화).


9) Geo/ASN 및 장치

IP → Geo/ASN: 캐시 및 업데이트; 타임 아웃/캐시없이 온라인으로 동기식 요청을하지 마십시오.
특징: ASN/DeviceID 안정성, 시프트 빈도, 로그인 간의 거리.


10) 누출 방지 및 온라인/오프라인 조정

적시 가입, 창/라벨의 향후 이벤트 없음.
오프라인 및 온라인을위한 하나의 변환 코드 (라이브러리).
동등성 테스트: 샘플 T에서 기능의 온라인 값을 오프라인 (MAE/MAPE) 과 비교합니다.

YAML 사양 기능:
yaml name: deposits_sum_10m owner: ml-risk slo: {latency_ms_p95: 20, availability: 0.999}
offline:
source: silver.payments transform: "SUM(amount_base) OVER 10m BY user_pseudo_id"
online:
compute: "streaming_window: 10m"
tests:
- compare_online_offline_max_abs_diff: 0.5

11) 기능 선택

11. 필터 1 개

변형/상관: 상수 제거ρ>0. 95 복제.
상호 정보 (MI) -범위 비선형 관계.
IV/KS (위험): AML/RG의 이진 대상.

11. 2 랩퍼

RFE/Sequential FS: 작은 세트/물류 회귀.
안정성 선택: 부트 스트랩 샘플링의 안정성.

11. 3 임베디드

L1/Lasso/ElasticNet: 희귀.
나무/GBDT: 선택 및 비즈니스 해석을위한 중요성/wwwP.
그룹 올가미: 그룹 선택 (한 변수의 빈 기능 세트).

파이프 라인 (스케치):
python
X = preprocess(raw)        # one-hot/TE/scale
X = drop_const_and_corr(X, thr=0.95)
rank_mi = mutual_info_rank(X, y)
keep1 = topk(rank_mi, k=200)
model = LGBMClassifier(...)
model.fit(X[keep1], y)
shap_vals = shap.TreeExplainer(model).shap_values(X[keep1])
keep2 = stable_topk_by_shap(shap_vals, k=60, bootstrap=20)
final = keep2

12) 안정성, 드리프트 및 교정

드리프트: 기능 및 속도를위한 PSI/KS; 임계 값을 초과하면 경고합니다.
안정성: "깨지기 쉬운" TE/WOE (카디널리티/시프트) 를보십시오.
교정: Platt/Isotonic; 신뢰성 보고서.
슬라이스 분석: 시장/공급자/장치-지표 및 예상 오류 비용.


13) 비용 공학 및 성능

CPF (Cost Per Feature): CPU/IO/네트워크/스토리지 → 모델 예산.
재료화: 무거운 오프라인, 가벼운 온라인; 핫 기능을위한 TTL/캐시.
원격 조회: async + 캐시 만; p95 <20-30 ms 온라인 기능.
충전: 명령에 의한 기능/추론 비용 계산.


14) 피처 스토어 (일관성 커널)

등록: 이름, 공식, 소유자, SLO, 테스트, 버전.
온라인/오프라인 동기화: 하나의 변환 코드, 동등성 테스트.
통나무/감사: 공식을 변경 한 사람; 모델 메트릭에 대한 버전의 효과.


15) 예

ClickHouse: 분 베팅 집계:
sql
CREATE MATERIALIZED VIEW mv_bets_1m
ENGINE = SummingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), user_pseudo_id)
AS
SELECT toStartOfMinute(event_time) AS ts_min,
user_pseudo_id,
sum(stake_base) AS stake_sum_1m,
count() AS bets_1m
FROM stream.game_events
GROUP BY ts_min, user_pseudo_id;
상관 방지 드롭 (SQL 아이디어):
sql
-- вычислить корреляции и удалить пары с     ρ    >0.95, сохранив более «дешевую» фичу
WOE 비닝 (스케치):
python bins = monotonic_binning(x, y, max_bins=10)
woe = compute_woe(bins)
iv = compute_iv(bins)

16) 프로세스 및 RACI

R (책임): Data Eng (파이프 라인/기능 저장소), Data Science (설계 기능/선택/메트릭).
A (책임): 데이터/CDO 책임자.
C (컨설팅): 준수/DPO (PII, 거주자), 위험/AML/RG (정책), SRE (SLO/비용), 보안.
I (정보): 제품/마케팅/운영/지원.


17) 로드맵

MVP (3-5 주):

1. 포인트 인 타임 공식이있는 상위 50 개 기능 (결제/게임 플레이) 카탈로그.

2. Feature Store v1 (온라인/오프라인) + 동등성 테스트.

3. 기본 선택: 상수/상관 → MI → L1/CHAP 후보 목록 (최대 60 개 기능).

4. 드리프트 기능 및 비용 대시 보드 모니터링.

2 단계 (5-10 주):
  • 시간 인식 검증, 그래프 및 캘린더 기능이있는 TE/WOE.
  • 슬라이스 분석 및 공정성, 확률 보정.
  • 무거운 오프라인 기능, 온라인 캐시, 할당량의 재료화.
3 단계 (10-16 주):
  • 문서의 자동 생성, CI의 안정성 선택.
  • "비싸고 쓸모없는" 기능을 자동으로 비활성화합니다 (CPF TP, vklad).
  • 기능 세트, 예상 비용 보고서의 A/B 비교.

18) 사전 판매 점검표

  • 모든 기능에는 사양 (소유자, 공식, 버전, SLO) 이 있습니다.
  • 통과 된 시점 및 온라인/오프라인 동등성 테스트.
  • 필터 → 임베디드 (SHP/L1) → 안정성이 완료되었습니다.
  • 드리프트 모니터링 및 신뢰성 구성; 임계 값 및 경고입니다.
  • CPF/대기 시간은 예산에 적합합니다. 무거운 기능이 구체화되었습
  • PII 정책이 충족되었습니다 (CLS/RLS, 토큰 화, 거주).
  • 문서 및 사용 사례가 카탈로그에 추가되었습니다.

19) 반 패턴 및 위험

레이카지 (미래 이벤트/여파 프로모션).
일관성이없는 온라인/오프라인 공식.
해싱/TE없이 하이 카디널 카테고리에서 과잉 공급되었습니다.
"비싼" 기능은 측정 가능한 품질 향상없이 제공됩니다.
슬라이스/공정성 분석 부족-숨겨진 분해.
시간 인식 교차 검증없이 TE/WOE → 재교육.


20) 결론

Feature Engineering은 현장, 비즈니스 감각, 재현성, 모니터링 및 경제와 같은 관리 분야입니다. 강력한 기능 + 엄격한 선택 (필터/래퍼/임베디드) 및 단일 피처 스토어는 순 수익을 개선하고 사기를 줄이며 RG를 투명하고 칭찬하는 안정적이고 해석 가능하며 저렴한 모델을 제공합니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.