분류 전체보기 96

[PySpark] 신용카드 사기거래 탐지 모델링(2) - 성능지표정의

모델링 과정에서 우리가 해결하고자하는 문제가 무엇인지 정의하는 것은 전체 모델링 업무에 있어서 거의 반이지 않을까?(시작이 반이라는 의미가 있으니..). 즉, 모델링 업무의 시작이라고 생각된다. 문제도 모르는채 무슨 모델을 어떻게 쓸지 고민하는건 마치 내가 로또 1등 걸리면 한강이 보이는 집을사고 차는 포르쉐로 사서 나머지 돈은 주식해야지랑 다를빠가 있으려나.. ㅠ(그래도 행복한 고민이다) 내가 생각하기엔 머신러닝(지도학습)은 기존에 있는 데이터 패턴을 파악해(학습) 미래의 데이터 패턴을 보고 얼마나 예측하는 모델이라고 생각한다. 여기서 모델이 얼마나 잘 예측하는지는 모델링 프로세스의 결말 부분에서 중요하다. 왜냐 사람의 직감보다 못마추는 모델이라면 굳이 사용할 필요가 없는거 아닌가? 일반적으로 데이터를..

[PySpark] 신용카드 사기거래 탐지 모델링(1) - 데이터 탐색

실제 데이터 모델링 업무를 하다보면 클래스 불균형(class imbalanced, 라벨 불균형)인 데이터를 자주 만나게 된다. 일반적으로, 머신러닝 모델은 클래스의 비중이 비슷할때 가장 잘 작동하지만 그런 균형있는 데이터를 다루기엔 현실적으로 쉽지않다. 따라서, 데이터가 심각하게 불균형(highly imbalanced)인 상황에서 어떤 문제가 있고, 어떻게 의사결정하여 문제를 해결했는지 정리하고자 한다. 해당 데이터는 kaggle: Credic Card Fraud Detection에서 다운로드 가능하다. 데이터는 2013년 9월 유럽에서 발생한 신용 카드 거래내역이다. 이 데이터는 이틀 동안 발생한 거래내역을 보여주며, 여기서 284,807건의 거래중 492건의 신용카드 거래가 사기로 판별됐다. 클래스가..

FQDN(Fully Qualified Domain Name) & PQDN(Partially Qualified Domain Name) 이란?

FQDN은 '전체 도메인 네임', '절대 도메인 네임(absolute domain name)' 이라 불리며 호스트(host) 이름과 도메인(domain) 이름을 전체를 일컫는 용어이다. 예를들어, sikmulation.tistory.com What has happened has happened sikmulation.tistory.com 여기서 sikmulation: 일반적으로 도메인 내의 특정 서버 또는 서비스를 나타내는 호스트 이름 tistory.com: 조직, 웹 사이트 또는 네트워크를 식별하는 도메인 이름 따라서 '호스트 + 도메인'인 전체 경로명으로 위치를 식별하는 이름을 FQDN이라고 한다. FQDN와 달리 전체 경로명이 아닌 하위 일부 경로만으로 식별 가능하게 하는 이름을 PQDN(Partia..

IT/네트워크 2023.06.16

[PySpark] dense 벡터와 sparse 벡터, UDF로 sparse vector 만들기

1.vector 개념 희소 벡터를 생성하려면 벡터 길이(엄격하게 증가해야 하는 0이 아닌 값과 0이 아닌 값의 인덱스)를 제공해야 합니다. pyspark.mllib.linag.Vecotors 라이브러리는 dense(고밀도), sparse(희소) 두 유형의 로컬 벡터를 지원한다. 희소 벡터는 벡터안에 숫자가 0이 많은 경우에 사용한다. 희소 벡터를 생성하려면 벡터 길이와 0이 아닌 값과 0이 아닌 값의 인덱스 총 세가지의 인자를 넣어야 한다. tip! 일반적으로 ML 모델 feature 구성시 vector assembler를 활용해서 features를 하나의 벡터로 구성한다. Vector Assembler가 메모리를 적게 사용하는 형식 중 하나를 기준으로 dense 벡터와 sparse 벡터를 선택한다. 또..

[PySpark] array 값 합계 컬럼 생성하기

PySpark의 Column() 함수를 사용하여 열에 있는 배열 값의 합계를 계산하려면 expr() 함수를 aggregate() 함수와 함께 사용할 수 있다. from pyspark.sql import SparkSession from pyspark.sql.functions import col, expr, aggregate # Create a SparkSession spark = SparkSession.builder.getOrCreate() # Create a sample DataFrame data = [("Alice", [1, 2, 3]), ("Bob", [4, 5]), ("Charlie", [6, 7, 8, 9])] df = spark.createDataFrame(data, ["Name", "Numbe..

[pandas] 날짜차이 컬럼 생성하기

판다스 데이터 프레임에서 특정 고정 날짜와 datetime64 열 사이의 기간을 나타내는 새 열을 만들려면 datetime64 열에서 고정 날짜를 뺄 수 있습니다. 그러면 고정 날짜와 각 날짜 시간 값 사이의 시간 차이를 나타내는 time delta64 데이터 유형이 생성된다. import pandas as pd # Example DataFrame df = pd.DataFrame({'Date': ['2023-05-10', '2023-05-11', '2023-05-12'], 'Time': ['09:00:00', '10:30:00', '14:15:00']}) # Convert 'Date' and 'Time' columns to datetime64 type df['Date'] = pd.to_datetime(d..

[빅데이터를 지탱하는 기술] Ch5.빅데이터 파이프관리

5-1.워크플로우 관리 정해진 업무를 원활하게 진행하기 위한 구조 워크플로 관리도구 정기적으로 태스크 실행 비정상적인 상태 감지후 해결 ex) Airflow, azkaban, Digdag, Luigi, Oozie 워크플로 관리도구와 태스크 정해진 개별 반복 처리를 태스크(Task)라고 함 도구를 사용하는 이유는 태스크 실행의 실패 때문 태스크 수 증가로 재실행이 어려워 도구를 활용함 워크플로 관리 도구의 기능 정기적인 스케쥴로 태스크 실행후 통지 태스크간 의존 관계를 정하구 정해진 순서대로 실행 태스크 실행결과 보관, 오류 발생시 재실행 워크플로 관리 도구의 종류 선언 형과 스크립트 형 선언형(declarative) XML, YAML 등의 서식으로 워크플로 기술 미리 제공된 기능만 이용가능하지만 최소한의..

[빅데이터를 지탱하는 기술] Ch4.빅데이터의 축적

4-1 벌크 형과 스트리밍 형의 데이터 수집 빅데이터는 대부분 확장성이 높은 분산 스토리지(distributed storage)에 저장 Hadoop 이라면 HDFS, 클라우드 서비스라면 Amazon S3 객체 스토리지(object storage)에서는 다수의 컴퓨터를 사용해 파일을 여러 디스크에 복사 데이터의 중복화 및 부하 분산 파일 읽고 쓰는데 네트워크 거쳐 실행 여러 디스크에 복사하기 때문에 일부 고장 나더라도 데이터 손실 x 다수의 하드웨어에 분산해 데이터 양 커도 성능 유지 소량에 데이터에서는 오히려 비효율적, 데이터양에 비해 통신 오버헤드가 큼 빅데이터에서 자주 다루는 것은 시계열 데이터 수시로 객체 스토리지에 기록시 대량의 작은 파일이 생성돼 성능 저하 적당히 모아서 하나의 큰 파일로 만드는..

RTB, DMP, DSP, AD exchange, AD network

AD-tech란? 디지털 광고 구매 및 판매가 점점 더 복잡해짐에 따라 이 과정을 간소화하기 위해 애드테크가 등장했다. 수요 측 플랫폼과 같은 일반적인 애드테크 도구는 광고주가 다양한 퍼블리셔 사이트 전반에서 노출수를 구매하고 잠재고객을 선택할 수 있도록 지원하는 기술입니다. 궁극적으로 애드테크 환경은 광고주가 전략적으로 광고 캠페인을 계획 및 최적화할 수 있도록 지원한다. 📖 1st Generation (1994~) Non-targeted Display Ads 불특정한 유저에게 대량의 광고 노출 타겟팅 무 낮은 광고 ROI 📖 2nd Generation (2003 ~) Search Ads 유저 검색 기반의 타겟팅 광고 특정 유저 대상 키워드 광고 노출 높은 광고 ROI 제한된 타겟팅 유저 수 📖 3rd..

기타/marketing 2023.03.27

디지털 마케팅, Ad tech

- 디지털 마케팅 용어집 https://brunch.co.kr/@edte1020/85 디지털 환경에서의 마케팅 용어집 최종 업데이트 2022.05.05 | 이번 아티클은 디지털 환경에서 마케팅 업무를 수행할 때 알아두어야 할 기본 용어들을 1~3줄 내외로 설명하고 있습니다. 용어들은 지속적으로 업데이트를 해 나갈 예정 brunch.co.kr https://brunch.co.kr/@edte1020/73 디지털 광고 Bidding System에 대한 이해 디지털 환경에서의 광고가 게재되는 원리에 대해 이해하기 | 퍼포먼스 마케팅은 디지털 마케팅 환경을 구성하는 일부로서 비딩 시스템에 대한 이해가 있어야 제대로 된 접근이 가능하다. 이에 brunch.co.kr - 총정리 https://itmobile.tis..

기타/marketing 2023.03.16