분석 Python(343)
-
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 -
Python) datetime64[ns]로 변환하는 방법
df['timestamp'] = pd.to_datetime(df.timestamp).dt.tz_localize(None) https://stackoverflow.com/questions/62917882/convert-datetime64ns-utc-pandas-column-to-datetime convert datetime64[ns, UTC] pandas column to datetime I have a dataframe which has timestamp and its datatype is object. 0 2020-07-09T04:23:50.267Z 1 2020-07-09T11:21:55.536Z 2 2020-07-09T11:23:18.015Z 3 2020-07-09T04:03:28.581Z 4 202..
2022.10.10 -
[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 - 5. GP Bayesian Optimization
베이지안 최적화는 평가 비용이 많이 드는 objective function를 최소화(또는 최대화) 하기 위한 강력한 전략입니다. 이것은 auto-sklearn,auto-weka 및 scikit-optimize와 같은 자동화된 기계 학습 도구 상자의 중요한 구성 요소이며, 여기서 베이지안 최적화는 모델 하이퍼 매개 변수를 선택하는 데 사용됩니다. 베이지안 최적화는 광범위한 다른 응용 프로그램에도 사용됩니다. 대화형 사용자 인터페이스, 로봇 공학, 환경 모니터링, 정보 추출, 조합 최적화, 센서 네트워크, 적응형 몬테카를로, 실험 설계 및 강화 학습이 포함됩니다. 베이지안 최적화는 특히 파라미터 튜닝할 때 많이 들어보는 내용이고, 목적 함수를 위해서 더 좋은 선택을 할 수 있게 도와주는 알고리즘입니다. 참고..
2022.08.29 -
[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) 특정 코드의 패턴 조합 찾기
사람도 코드로 정렬한다면, 유니크한 코드로 구성할 수 있지만, 집단이나 특색을 표현하기 위해서는 몇 가지의 코드를 구성해서 사람들을 나누게 된다. 예를 들어 특정 사람에 대해서 속성을 만든다고 하면, 이 사람의 성별, 직업, 결혼 여부, 자녀 여부, 주택 여부 등 다양한 속성으로 사람들을 나눌 수 있다. 그렇다면 이것과 마찬가지로 특정 상품이 있다면 해당 상품을 특정 카테고리로 분류해야 사람들이 쉽게 볼 수 있을 것이다. 아래 그림처럼 특정 상품에 대해서 여러 개의 코드를 정해서 해당 상품을 표현하게 된다. 그리고 이러한 상품을 거래하게 되면 데이터베이스 같은 곳에서는 다음과 같이 적재될 것이다. 특정 상품을 고객이 사면 고객이 어떤 날짜에 어떤 제품을 샀는데, 이것에 해당하는 코드들은 적재될 것이다. ..
2022.08.28 -
[Pyro] Application - 1. Bayesian Regression 이해하기
지난번에 문서를 보면서, 베이지안 학습 방식에 대한 개념과 Pyro 사용법에 대해서 알게 되었지만, 아직 실제로 이러한 방법을 현실에 어떻게 쓰는지 와닿지 않기 때문에 예제와 함께 알아보고자 한다. 이번에는 베이지안 회귀분석 예제를 보고 이해해보고자 한다. 참고 자료 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 - 3. Gaussian Process 이해하기 2022.0..
2022.08.21