python

    [Google Colab] Github에 push 하기

    [Google Colab] Github에 push 하기

    Google Colab의 프로젝트가 점점 커셔 따로 원격 저장소에 보관할 필요를 느꼈다. Google Colab과 Github를 연동해 push하는 방법을 알아보자. 1. github에 새로운 레포지토리 생성 2. Push 하고 싶은 디렉토리에서 commit 용도의 colab 하나 생성하기 깃허브에 push 하고 싶은 디렉토리에 들어간다. 아래와 같이 project.ipynb를 깃허브에 push 하고 싶다고 하자. 다음은 commit 용도의 colab을 하나 생성해야 한다. 마치 터미널에서 git push 등을 했던 것처럼 commit 등의 git 명령을 입력해줄 용도의 colab이다. 여기서는 colab 파일 명을 for_git_commit.ipynb 으로 했다. 파일명은 아무거나 상관없다. 3. .g..

    [Python] 음수 나누기 - / 연산자, // 연산자

    파이썬에서 나누기 연산자로 몫을 구하고자 할 때는 다음과 같이 두 경우를 생각할 수 있다. print(10//3) print(int(10/3)) # 결과 3 3 양수끼리 나누면 두 경우 모두 같지만 음수 나누기를 하면 두 값은 달라진다. print(-10//3) print(int(-10/3)) # 결과 -4 -3 -10 나누기 3은 -3.3333... 이다. // 연산자는 나누기 결과보다 작은 정수 중 가장 큰 정수인 -4를, int() 연산자는 그냥 소수 부분을 버려서 -3을 결과로 갖는다. 알고리즘을 풀다가 우연히 발견했다.

    [Python] 비트 연산자

    비트 연산자 비트 연산자 a = 0b1010, b = 0b0100 & AND a & b -> 0b0000 | OR a | b -> 0b1110 ^ XOR a ^ b -> 0b1110 ~ NOT ~a -> 0b0101 오른쪽 Shift a >> n -> a * 2^-n 비트 연산자 응용 나누기, 나머지 연산 흔히 쓰이는 /, % 연산자는 오버헤드가 크기 때문에 필요한 경우 더 빠른 비트 연산을 사용할 수 있다. 나누는 수가 2^n인 경우 >> 연산자가 / 연산자를 대체할 수 있다. ex) 9 / 8 = 1 -> 9 >> 3 = 1 나누는 수가 2^n인 경우 & 연산자를 활용해 % 연산자를 대체할 수 있다. 2^n 꼴의 숫자를 이진수로 표현하면 최상위 비트만 1인 형태를 띄게 되고, 2^n에 -1을 더하면 ..

    [Python] Selenium을 사용한 네이버 이미지 크롤링

    [Python] Selenium을 사용한 네이버 이미지 크롤링

    진행 중인 프로젝트에서 음식 이미지를 사용할 일이 있어서 이미지 크롤링에 대해 찾아보기 시작했다. 여러 사이트를 뒤져봤는데, 그 중 네이버 이미지에는 CCL 상업적 이용 가능 옵션이 있어서 보다 안전하게 프로젝트에 사용할 수 있지 않을까 싶어서 네이버에서 크롤링을 하기로 했다. 구글링을 열심히 해서 여러 크롤링 코드들을 참고했지만, 실제로 잘 동작하지 않아서.... 직접 참고한 몇몇 코드를 따와서 재구성해보았다. 일단 beatifulsoup으로 크롤링을 시도했을 때는 특정 태그부터는 parser가 접근을 하지 못해서 (해당 태그에 dataGroupKey 같은 인증 관련된 부분이 있었는데 이 문제인듯 싶다...) selenium을 통해 구현하기로 했다. selenium 설치 우선 selenium 사용을 위..

    [Scikit learn] Linear Model을 사용한 컨텐츠 베이스 추천 + Lasso 모델 적용

    [Scikit learn] Linear Model을 사용한 컨텐츠 베이스 추천 + Lasso 모델 적용

    사용 데이터 MovieLens 영화 데이터 -> ml-latest-small.zip -> movies.csv, ratings.csv를 가공 -> ratings_updated.p, genres.p 생성 https://grouplens.org/datasets/movielens/ import pandas as pd import numpy as np import warnings warnings.filterwarnings('ignore') ratings = pd.read_pickle('[파일 경로]/ratings_updated.p') genres = pd.read_pickle('[파일 경로]/genres.p') ratings_updated.p: 기존 ratings.csv 형식과 똑같다. 단순히 개인적으로 데이터 ..

    [Scikit learn] 학습데이터, 평가 데이터 평균제곱근 편차(RMSE) 계산

    [Scikit learn] 학습데이터, 평가 데이터 평균제곱근 편차(RMSE) 계산

    RMSE 평균 제곱근 오차(RMSE)는 예측한 값과 실제 환경에서 관찰되는 값의 차이를 다룰 때 흔히 사용하는 측도이다. 예측값과 실제값의 오차는 양수, 음수 모두 나올 수 있기 때문에, 각 오차의 제곱의 평균을 구한뒤 이를 제곱근으로 정의한 것이 RMSE이다. 간단한 예시를 보자. 예시 데이터 rating_example=[[4, 3.5], [5, 5], [0.5, 1], [3, 5]] rating_example = pd.DataFrame(rating_example, columns=['Actual', 'Predict']) 실제값(Actual), 예측값(Predict)를 갖고 있는 간단한 데이터를 만들었다. RMSE 계산 import numpy as np # 오차 계산: error = Actual - Pr..

    [Pandas] concat - 데이터 이어 붙이기

    두 csv 파일을 붙여보자. 단, 두 데이터의 column 정보는 같아야 한다. import pandas as pd ratings = pd.read_csv('[파일 경로]/ratings.csv') myratings = pd.read_csv('[파일 경로]/my-ratings.csv') ratings_concat = pd.concat([ratings, myratings])

    [Python] datetime - fromtimestamp() (타임스탬프를 날짜로 변환하기)

    Python에서 Unix timestamp (1970년 1월 1일(UTC)부터 몇 초가 흘렀는지를 나타내는 수치)를 날짜로 변환하는 법 from datetime import datetime x = 1537158105 d = datetime.fromtimestamp(x) print(d) 2018-09-17 4:21:45