오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Data Analysis and ML, DL 15

[sklearn] 모델 저장 방법

sklearn에서 모델을 돌린 후에 웹에서 이 모델을 사용하기 위해 파일 형태로 저장해서 사용할 때 사용하는 방법 1. 모델 저장 import joblib model = LinearRegression() model.fit(Xtrain, ytest) joblib(model, 'fileName.pkl') 위 명령어를 작성하면 저장할 수 있다. 2. 모델 불러오기 import joblib model = joblib.load('/filePath/fileName.pkl') result = model.transform(input) Input 파일의 순서를 맞추거나 pandas DataFrame 형태로 만들어서 사용하면된다. 위와 같은 방법으로 Pipeline이나 Scaler(Standard, Minmax, Robu..

[sklearn] the reset parameter is False but there is no n_features_ in_ attribute. Is this estimator fitted? Request Method: GET

스케일러를 fit 하지 않고 transform 하려고 했을 때 발생하는 오류라고 생각할 수 있다.. 그때 발생하는 오류가 맞긴 하지만 나의 경우는 조금 달랐다. Colab에서 scaling을 한 후에 fit하고 pickle이나 joblib을 이용해 저장하고 웹에서 불러올 때 위에 있는 에러가 발생했다. 이유는 sklearn의 버전이 저장하는 환경과 웹서버 환경이 다르기 때문이다. 2020.11.22 지금 Colab의 sklearn 버전은 0.22.2.post1 웹서버의 버전을 아래 명령어를 통해 낮춰주고 진행하면된다. pip install scikit-learn==0.22.2.post1 참고로 sklearn.externals.joblib is deprecated

[sklearn] 사이킷런으로 대용량 데이터 분석하기

사이킷런은 GPU를 지원하지 않는다. 그래서 코랩 프로를 사용했을 때 이점이 그렇게 크지 않다. 더군다나 코랩은 고용량 RAM도 25기가 밖에 지원하지 않기 때문에 금새 OOM(Out of Memory)가 떠서 기껏 연산해놓은 작업이 날라가 버리는 불상사가 발생한다. 이 글은 제한된 컴퓨터 자원을 이용해 머신러닝을 하려는 사람들에게 도움이 됐으면 하는 마음으로 프로젝트를 하면서 사용했던 방법을 공유하는 글이다. 첫번째. 메모리를 사라. 이게 무슨 말인가? 제한된 컴퓨터 자원을 사용하는 사람을 위한 글이라더니 갑자기 메모리를 사라니? 맞다. 하지만 금전적인 여유가 있다면... 이 방법 저 방법 찾는바에야 메모리를 사서 해결하는 방법이 훨씬 더 간편하고 속편한 방법이다. 일단 메모리만 커져도 디스크 I/O가..

[Pyspark] Colab No module Named 'mmlspark.lightgbm._LightGBMRegressor'

colab에서 pyspark를 돌리다가 lightgbm을 사용하려고 mmlspark를 install하고 아래와 같은 코드를 돌릴려고 하니 발생한 오류 from mmlspark.lightgbm import LightGBMRegressor 이 에러는 기본적으로는 spark에 필요한 패키지가 없어서 발생한 문제로 먼저 아래 명령어로 하둡과 스파크를 다운로드 받아준다. !apt-get install openjdk-8-jdk-headless -qq > /dev/null !wget -q https://www-us.apache.org/dist/spark/spark-2.4.7/spark-2.4.7-bin-hadoop2.7.tgz !tar xf spark-2.4.7-bin-hadoop2.7.tgz !pip install..

[Pyspark] Pyspark 데이터 전처리 기본기

목차 1. 특정 열 갖고 오기 2. 특정 열의 중간값 찾기 3. 특정 열의 결측치 세기 4. 데이터프레임의 모든 결측치 세기 5. 데이터 프레임에서 여러 Columns 한번에 제거하기 1. 특정 열 갖고 오기 col = df.select('colname') => 리스트 형태로 반환 2. 특정 열의 중간값 찾기 md = df.approxQuantile(c, [0.5], 0.25) => 리스트 형태로 반환 3. 특정 열의 결측치 세기 df.filter((df["ID"] == "") | df["ID"].isNull() | isnan(df["ID"])).count() stackoverflow.com/questions/48229043/python-pyspark-count-null-empty-and-nan 4. 데..

[Pyspark] Pyspark 데이터 전처리 기본기

목차 1. 특정 열 갖고 오기 2. 특정 열의 중간값 찾기 3. 특정 열의 결측치 세기 4. 데이터프레임의 모든 결측치 세기 5. 데이터 프레임에서 여러 Columns 한번에 제거하기 1. 특정 열 갖고 오기 col = df.select('colname') => 리스트 형태로 반환 2. 특정 열의 중간값 찾기 md = df.approxQuantile(c, [0.5], 0.25) => 리스트 형태로 반환 3. 특정 열의 결측치 세기 df.filter((df["ID"] == "") | df["ID"].isNull() | isnan(df["ID"])).count() stackoverflow.com/questions/48229043/python-pyspark-count-null-empty-and-nan 4. 데..

[Pyspark] Trouble Shooting

1. Py4JNetworkError: An error occurred while trying to connect to the Java server (127.0.0.1:46831) 메모리 부족으로 발생한 문제로 그냥 커널을 껐다가 키자.. 추가할 수 있는 메모리가 있으면 메모리를 추가하는 것도 좋은 방법 https://stackoverrun.com/ko/q/11300059 2. SparkWithDataFrame: java.lang.IllegalArgumentException: requirement failed StandardScaler를 사용할 때 발생한 문제 StandardScaling을 하기전에 아래와 같이 VectorAssemble을 해줘야한다. vecAs = [VectorAssembler(input..