Python(215)
-
Python) pregex 로 편하게 정규 표현식 사용하기
텍스트에서 원하는 부분을 추출하기 위해서 정규표현식을 작성하는데, 고수들은 다 잘할 것이겠지만, 좀 더 편하게 하는 패키지를 찾은 것 같아서 테스트도 해볼 겸 작성한다. 소개할 패키지는 pregex라는 패키지이다. 사람 친화적인 방식으로 정규 표현식을 쓸 수 있어서 가독성 면에서나 활용면에서 쓸만해보인다. 문제는 파이썬 3.9 이상부터 지원된다는 것이라서, 이번 기회에 기존 유저들은 자연스럽게 파이썬 버전을 올리면 좋을 것 같다 ㅎㅎ 설치 방법 파이썬 3.9 이상 pip install pregex 파이썬 예시 간단한 URL 찾기 아래 TEXT에서 URL을 찾는 행위를 한다고 해보자. 그것을 일반적으로 찾으려고 하면, 위의 그림처럼 복잡하게 코딩을 해야 하고, 의도를 파악하기 위해서는 만든 사람의 설명이 ..
2022.07.30 -
Customer Segmentation 자료 정리
STR IN AI PAPER : A strategic framework for artificial intelligence in marketing Segmentation, Targeting, Positioning https://www.linkedin.com/pulse/how-use-ai-advanced-targeting-marketing-antonel-neculai/ How to use AI for Advanced Targeting in Marketing Artificial intelligence is a branch of computer science that deals with the simulation of intelligent human behavior by machines. With the hel..
2022.07.10 -
[Causal Inference] 기본 이해 및 파이썬 라이브러리
AI 모델을 실제 활용하는 데 있어서, 인과 같은 것을 아는 것이 참 중요하다고 생각한다. 현재 해석 가능한 부분에 대한 연구도 진행이 되고 있는데, 아직 까지는 완벽한 방법은 없는 것 같다. 어떠한 모델이든 실제 이 결과가 무엇 때문에 나왔는 지에 대한 부분은 항상 중요하니, 간단한 개념이라도 미리 공부해보려고 한다. 여러 자료를 보고 있으나 아직도 확 와닿지는 않는다.ㅠ 참고) 일단 글 자체가 MICROSOFT에서 쓴 것이라 그런지 결국 라이브러리에서 마이크로소프트 라이브러리를 강조하고 있긴 하다. Introduction 당신이 판매를 증진시키기 위해 특정 고객들에게 credit offer를 확장하기 시작했다고 상상해 보세요. 특가 기간 동안 그 고객들의 구매가 증가한 것을 알 수 있지만, 신용 제안..
2022.07.09 -
[ Python ] jpg, png 를 gif 또는 mp4로 만들기
jpg를 gif로 만들려는데, 먼가 잘 안돼서 이것저것 하다가 아는 형의 코드를 참고해서 결국 성공하게 되었다. 이 글에서 포인트는 다음과 같다. 1. 각 이미지 사이즈가 다른 것이 있어서 사이즈를 맞춰주는 작업이 필요함. 2.기존에 하던 방식을 했는데, 작동하지 않아서 새로운 방법으로 gif를 만들었음. 기존 방식) 아래와 같은 방법이 작동하지 않았다. GIF import os os.system('convert -delay 15 -loop 0 ./pngs/*.png ./UI.gif') 일단 이미지 사이즈가 다르니 이미지 사이즈를 맞춰줬다. 사진이 뭉개질까봐 가장 작은 사이즈 기준으로 맞췄다. from PIL import Image import cv2 result = [] for idx , path in..
2022.05.22 -
[Python] 이산화된 공간 안에 속하는 좌표 찾기
이전에 했던 작업을 조금 수정하여 다시 올림 아래와 같이 어떤 특정 영역을 표현하는 이산화 된 점이 있을 때 이 영역 안에 들어있는 점들을 찾는 방법에 대한 글이다. coordinate = [(0,0),(2,2),(4,4),(6,2),(6,0),(0,0)] 아래 코드를 통하여 선이 지나가는 grid 한 좌표를 탐색한다. total_grid = [] for idx in range(len(coordinate) - 1): start = coordinate[idx] end = coordinate[idx + 1] discrete_line = list( zip( *line( *start, *end, ) ) ) for i in discrete_line: if i not in total_grid: total_grid...
2022.05.19 -
hyper graph 관련해서 도움이 되는 글들
hypergraph에 대해서 자료를 하나씩 찾아보면서 정리 중이다. 아직 간단하게 개념적으로만 이해를 한 상태인 것 같다. 유익한 자료가 있으면 댓글로 공유 부탁드립니다 😁 시각화 https://towardsdatascience.com/how-to-visualize-hypergraphs-with-python-and-networkx-the-easy-way-4fe7babdf9ae How to visualize hypergraphs with Python and networkx — The Easy Way An easy method to draw some hypergraphs via standard graph visualization libraries. towardsdatascience.com 패키지 시각화 및 ..
2022.05.08 -
Python) list와 nested list안에 값을 기준으로 병합하는 코드
이름을 어떻게 해야 할지 모르겠지만, 일단 시작하면 다음과 같은 문제가 있었다. 2개의 list가 있는 데 하나는 그냥 list고 하나는 nested 형태의 list이다. 이 안에는 idx가 있고, 이 nested list에도 idx를 묶어 놓은 list들이 있다. 이 2개를 합치는 작업이 필요해서 고민하다가 나온 결과를 공유한다. 다음과 같은 예시가 있다고 하자. _list = [0,1,5,12,16] _nested_list = [[2,3,4],[6,7,8],[9,10,11],[13,14,15]] 나의 목적은 이 2개를 순서를 유지하면서 합치는 것이 목표이다. [0, 1, [2, 3, 4], 5, [6, 7, 8], [9, 10, 11], 12, [13, 14, 15], 16] 위와 같이 idx의 순서..
2022.05.06 -
Python) 직선 기준 점 대칭 이동 구현
직선과 점이 있을 때 대칭 점을 구하는 파이썬 코드를 구현해봤다. 위의 그림처럼 우리가 하나의 직선을 알고 하나의 점(A)을 알 때 A'를 구하는 방법이다. 실제 구현하는 공식은 다음과 같다. 그래서 우리가 알아야 하는 것은 2개이다. 바로 점의 좌표와 직선의 방정식을 구하면 된다. def get_symmetry_point(two_point,one_point): dx, dy = np.array(two_point[0]) - np.array(two_point[1]) w = dy / dx b = two_point[0][1] - w * two_point[0][0] x1, y1 = one_point[1] new_x0 = x1 - 2 * w * (w * x1 - 1 * y1 + b) / (w**2 + 1) new_..
2022.04.29 -
torchfunc) titanic data에 model parallel training 해보기
jax 예시로 나온 것처럼 소규모 네트워크를 빠르게 학습시키는 방법에 대해 공유합니다. 소규모 네트워크를 훈련하는 경우 병렬화의 근본적인 한계에 부딪힙니다. 확실히 2계층 MLP는 ResNet-50보다 훨씬 빠르게 실행됩니다. 그러나 ResNet에는 약 4B의 곱셈 누산 연산이 있는 반면 MLP에는 100K만 있습니다.1 우리가 원하는 대로 MLP는 ResNet보다 40,000배 더 빠르게 훈련하지 않으며 GPU 사용률을 검사하면 그 이유를 알 수 있습니다. . GPU의 ~100%를 사용하는 ResNet과 달리 MLP는 2-3%만 사용할 수 있습니다. 더 많은 컴퓨팅을 병렬로 사용하는 한 가지 방법은 배치 크기를 늘리는 것입니다. 예를 들어 128개 요소의 배치를 사용하는 대신 GPU를 채울 때까지 이를..
2022.03.26 -
Python) 고객 생애 가치(CLV) 예측하기
고객 생애 가치를 예측할 때는 기존 회귀 모델 방식보다는 다른 특정 가정을 사용하고 있는 모델을 사용해야 한다. lifetimes이라는 패키지를 사용하는 예시를 해보고자 한다. 고객 생애 가치(CLV)는 고객이 인수부터 비즈니스와의 관계가 종료될 때까지 지출할 총금액입니다. 참고 부탁드립니다. 2022.03.17 - [분석 Python/구현 및 자료] - Python) 고객 생애 가치(CLV)에 대해서 알아보기 예측(Prediction)과 Calculation(계산)에 차이는 무엇일까요? CLV를 계산할 때, 오로지 현재 상황을 조사하고 분석만 할 수 있습니다. 그래서 우리는 고객에 새로운 상품을 살 때나 특정한 한계에 도달했을 때 추측할 수가 없습니다. 예측을 통해 우리는 기계 학습을 프로세스에 추가하..
2022.03.17 -
Python) 고객 생애 가치(CLV)에 대해서 알아보기
도입부 CLV 또는 LTV로 부르는 ‘고객 생애 가치’는 고객이 비즈니스에 기여한 금전적 가치를 가리키는데, 회사가 얼마나 수익성이 있을지 또는 신규 고객을 확보하기 위해 얼마나 많은 비용을 지출할 수 있는지를 이해하는 데 중요한 지표입니다. 고객생애가치(Customer Lifetime Value (CLV))는 고객이 인수부터 비즈니스와의 관계가 종료될 때까지 지출할 총 금액입니다. 즉 개별 고객이 창출하는 비즈니스 가치를 말해줍니다. 고객 관계(Customer Relationships)가 수익성이 있는지 판별하고자 CLV를 사용합니다. 제품, 마케팅, 광고, 영업 팀은 CLV를 기준으로 수익성을 유지하면서 고객 확보, 참여, 유지에 얼마의 비용을 투여할 것인지 결정합니다. CLV를 계산하려면 몇 가지를..
2022.03.17 -
Python) pydantic 알아보기
개인적으로는 dataclass가 namedtuple를 쓰다가 불편해서 사용하고 있었는데, 이 dataclass에서는 데이터 검증 부분이 없다고 한다. 그래서 우연히 pydantic을 알게 돼서 pydantic에 대해 정리해보고자 한다. Python Type Hint를 사용한 데이터 유효성 검사 및 설정 관리에 대해서 설명하고자 합니다. 여기서는 pydantic이라는 패키지를 사용해봅니다. pydantic은 validation library가 아닌 parsing 라이브러리리입니다. 유효성 검사는 제공된 유형 및 제약 조건을 준수하는 모델을 구축하는 목적을 위한 수단입니다. 즉, pydantic은 입력 데이터가 아닌 출력 모델의 유형과 제약 조건을 보장합니다. 우선 데이터 검증이 뭔지부터 살펴봅니다. Wha..
2022.03.14