Python(212)
-
feast) FileSource 사용 방법(여러개 파일)
FileSource를 하기 위해서는 timestamp_field를 설정해야 함 다중 파일들을 커버하기 위해서는 *.parquet 으로 해야함. 0.26 버전임 class FileSource(DataSource): def __init__( self, *, path: str, name: Optional[str] = "", event_timestamp_column: Optional[str] = "", file_format: Optional[FileFormat] = None, created_timestamp_column: Optional[str] = "", field_mapping: Optional[Dict[str, str]] = None, s3_endpoint_override: Optional[str] = N..
2022.10.18 -
[VSCode] Python Interactive window 사용하여 코딩하기
가끔 jupyter를 사용하다 보면 버벅거릴 떄가 있고, 메모리를 많이 차지하는 경우가 있습니다. 이게 실제로 효율적인지는 모르겠지만, 우연히 발견하게 된 interactive view가 도움이 될 수도 있을 것 같아 공유드립니다. 물론 vscode 주피터에서 작업을 하게 되면, 기존에 관습대로 할 수 있어서 좋지만, 실제 학습 코드 개발이나 테스트하는 입장에서는 py에서 작업을 하는 것이 더 좋을 것 같다고 생각이 듭니다. 일단 아마도 jupyter extension이 설치가 되어야 이러한 작업이 가능한 것 같습니다. 설치가 안된 상태에서는 작동하지 않았습니다. 인텔리센스 Python Interactive 창에는 코드 완성, 멤버 목록, 메서드에 대한 빠른 정보 및 매개 변수 힌트와 같은 전체 Inte..
2022.10.06 -
[Pandas][꿀팁] string 데이터를 pandas data frame으로 바꾸기
매번 csv나 특정 파일로 떨꾸는 것이 귀찮을 때 사용할 수 있는 방법 공유합니다. :) 매번 read csv하려고 파일 옮겨서 하기 귀찮을 때 메모장에 있는 텍스트를 가져오거나, 엑셀에 있는 것을 복사에서 붙여 넣어서 사용할 수 있어서, 빠르게 검증하고자 할 때 유용합니다. :) 구현 아래처럼 특정 패턴으로 되어 있는 파일을 복사해서 붙여 놓고, 아래 명령어를 실행하면 됩니다. []에 있는 부분을 object 패턴에 맞게 변경해주면 됩니다. from io import StringIO import pandas as pd pd.read_csv(StringIO( [object] ),sep= [sep] ) 예시 from io import StringIO t = """ COLACOLBCOLCCOLD 1234 5..
2022.09.09 -
Python) Data Drift 탐지 KS로 구현해보기
다른 참고자료들을 보면서 이런 식으로 구현해볼 수 있지 않을까 해서 구현해봅니다. 한 가지 남은 이슈로는 이 코드 구현에서는 데이터의 히스토그램 정보를 저장하다 보니, 누적해서 계속 비교하는 것은 어떻게 해야 할지가 고민입니다. 이 부분 혹시 아이디어나 의견 있으면 댓글 부탁드려요! DATA DRIFT란? 다양한 Drift 문제가 있는데 여기서는 Data Drift를 다루려고 합니다. Data Drift란 간단히 말해서 시간이 변하면서, 데이터의 분포가 변하는 것을 의미합니다. 그래서 모델을 훈련하는 데 사용되는 데이터 세트와 실제 운영에서 받는 데이터를 모방하지 않을 때 발생합니다. 이것은 모델이 이상하게 작동하고 성능이 저하되기 시작하는 때입니다. 그래서 이러한 문제를 성능과 직결되는 문제를 가지고 ..
2022.09.03 -
Python) csv 파일을 parquet 파일로 만드는 방법
특정 파일을 paruqet으로 만드는 방법에 대해서 알아야 해서 정리해봅니다. Library Load import pandas as pd import pyarrow as pa import pyarrow.parquet as pq TXT (CSV) FILE TO Parquet file 변환 csv_file = "./ml-25m/movies.csv" parquet_file = "./my.parquet" chunksize = 500 csv_stream = pd.read_csv(csv_file, sep=',', chunksize=chunksize, low_memory=False) chunk =next(iter(csv_stream)) chunk로 schema를 추정할 수 있지만, 미리 정해져 있다면, 그 형식에 맞..
2022.09.03 -
Python) Pandas read_csv 인코딩 확인하는 방법 소개
파이썬에서 csv를 읽을 때 가장 큰 이슈 중에 하나는 가끔 인코딩이 안 맞아서 헤매는 경우가 많다. 이 경우 일반적으로 윈도우면 cp949 리눅스면 utf-8 대충 아는 식으로 하게 되면 대부분은 맞지만 특이한 것들이 나오는 경우가 있다. 이 방법은 리눅스에서만 가능할 것 같지만 소개한다. 리눅스 바로 다음 명령어를 사용하면 된다. (u.item이라는 파일이 있다고 가정) file -i u.item u.item: text/plain; charset=iso-8859-1 그럼 아래처럼 charset이 나오게 된다. 이걸 사용해서 읽을 때 인코딩으로 정해주면 된다. import pandas as pd df = pd.read_csv("u.item", sep="|", encoding="iso-8859-1") ..
2022.08.30 -
[Pyro] Application - 4. Gaussian Process Latent Variable Model(GPLVM)
가우스 프로세스 잠재 변수 모델(GPLVM)은 (잠재적으로) 고차원 데이터의 저차원 표현을 학습하기 위해 가우스 프로세스를 사용하는 차원 감소 방법입니다. 입력과 출력이 제공되는 가우스 프로세스 회귀의 일반적인 설정에서 커널을 선택하고 에서 저차원 매핑을 가장 잘 설명하는 하이퍼 매개 변수를 학습합니다. GPLVM에서 X는 주어지지 않고 y만 주어집니다. 그래서 우리는 커널 하이퍼 파라미터와 함께 배워야 합니다. X에 대해서 최대 가능성 추론을 하지 않습니다. 대신, Pyro는 가우시안 사전 분포를 설정을 하고 대략적인 (가우스) 사후 평균(q(X|y)과 분산을 학습합니다. 이 글에서는 pyro.contrib.gp 모듈을 사용하여 이 작업을 수행하는 방법을 보여 줍니다. 참고 자료 2022.08.21 -..
2022.08.29 -
[Pyro] Application - 3. Gaussian Process 이해하기
가우스 프로세스는 지도, 비지도 및 심지어 강화 학습 문제에 사용되어 왔으며 우아한 수학 이론으로 설명됩니다 또한 기능보다 사전 분포를 정의할 수 있는 직관적인 방법을 제공하기 때문에 개념적으로 매우 매력적입니다. 그리고 마지막으로, 가우스 프로세스는 베이지안 환경에서 공식화되기 때문에 불확실성에 대한 강력한 개념을 갖추고 있습니다. 다행히 Pyro는 pyro.contrib.gp 모듈에서 가우스 프로세스를 일부 지원합니다. 이 글의 목적은 이 모듈의 맥락에서 가우스 프로세스(GP)를 간략하게 소개하는 것입니다. 주로 Pyro에서 GP 인터페이스를 사용하는 방법에 초점을 맞출 것이며, GP에 대한 일반적인 자세한 내용은 독자에게 참고 자료를 참조하도록 안내할 것입니다. 참고 자료 2022.08.21 - [..
2022.08.28 -
[Pyro] Application - 2. Bayesian Regression 이해하기 2
이전에는 도입부로 설명했다면, 이번에는 bayesian regression pyro에서 어떻게 할 수 있는지 알아봅니다. 목표는 데이터 세트의 두 가지 기능인 국가의 1인당 로그 GDP를 다시 한 번 예측하는 것입니다. 국가가 아프리카에 있는지 여부와 지형 견고성(Terrian Ruggedness) 지수입니다. 참고 자료 2022.08.21 - [분석 Python/Pyro] - [Pyro] Application - 1. Bayesian Regression 이해하기 2022.08.28 - [분석 Python/Pyro] - [Pyro] Application - 2. Bayesian Regression 이해하기 2 2022.08.28 - [분석 Python/Pyro] - [Pyro] Application - ..
2022.08.28 -
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