Python 20

[Python] 추천 시스템(2)

Surprise 추천 시스템Surprise는 Python에서 추천 시스템을 구축하기 위한 라이브러리로, 협업 필터링(Collaborative Filtering) 알고리즘을 구현하는 데 유용하다.Surprise는 다양한 알고리즘을 지원하며, 기본적인 데이터셋 처리, 모델 평가 및 교차 검증 등을 쉽게 할 수 있도록 도와줌Surprise는 기본적인 협업 필터링 방법인 행렬 분해와 KNN (K-Nearest Neighbors) 기반의 추천을 제공Surprise 추천 시스템의 주요 알고리즘KNN (K-Nearest Neighbors)유사한 사용자 또는 아이템을 찾아 추천User-based 와 Item-based 방식으로 구분SVD (Singular Vlaue Decomposition)행렬 분해 기반으로 잠재요인..

Python 2025.03.01

[Python] 추천 시스템(1)

추천 시스템(Recommendation System)콘텐츠 기반 필터링(Content-Based Filtering)사용자가 선호하는 특성을 기반으로 유사한 아이템 추천ex) OTT에서의 영화장르, 감독, 배우 등 유사한 영화 추천.협업 필터링(Collaborative Filtering)최근접 이웃(Nearest Neighbor) 협업 필터링과 잠재 요인(Latent Factor) 협업 필터링으로 나뉨. 사용자의 행동 데이터(평점, 구매 목록, 장바구니 목록, 클릭, 검색)를 기반으로 유사한 패턴을 찾아서 추천ex) 쿠팡 등 상품 클릭 시 클릭한 다른 사용자가 본 상품 추천.하이브리드 추천 시스템(Hybrid Filtering)콘텐츠 + 협업 필터링의 정교한 추천ex) 유튜브, 넷플릭스, OTT 서비스 추..

Python 2025.03.01

[Python] 함수 사용하기

파이썬은 함수(function)라는 기능을 제공하는데 특정 용도의 코드를 한 곳에 모아 놓은 것을 뜻한다.함수는 처음 한 번만 작성해 놓으면 나중에 필요할 때 계속 불러 쓸 수 있다.(재사용 가능한 코드 블록)함수의 장점코드 재사용 : 같은 기능을 여러 번 사용할 때 코드 중복을 줄일 수 있다.가독성 향상 : 코드를 기능별로 나누어 명확하게 표현이 가능하다.유지보수 용이 : 특정 기능을 변경할 때 함수만 수정하면 된다.모듈화 가능 : 여러 개의 작은 함수로 나누어 큰 프로그램을 쉽게 구성이 가능하다.함수의 단점메모리 사용 증가 : 함수 호출이 많아지면 스택 메모리를 많이 사용하게 된다.추가적인 실행 시간 필요 : 함수 호출 자체가 오버헤드 될 수 있다.(작은 연산시)잘못된 사용 시 복잡성 증가 : 너무 ..

Python 2025.02.22

[Python] 2차원 리스트

2차원 리스트는 가로 x 세로 형태로 행(row)과 열(column) 모두 0부터 시작. 2차원 리스트는 리스트 안에 리스트를 넣어 만들 수 있고, 안쪽의 각 리스트는 ,로 구분한다.   len()으로 2차원 리스트의 크기를 구하면 리스트 안의 모든 요소의 개수가 아니라 세로 크기(안쪽 리스트 개수)가 나옴.요소에 접근할 때는 리스트[세로인덱스][가로인덱스] 형식.   for 반복문으로 2차원 리스트 만들기 리스트 표현식으로 2차원 리스트 만들기  2차우너 리스트의 할당과 복사

Python 2025.02.22

[Python] 리스트와 튜플 (3)

리스트(List)와 튜플(Tuple) 응용하기 리스트에 요소 추가하기- append() : 요소 하나를 추가메서드를 호출한 리스트가 변경되고, 새 리스트가 생성되지는 않음.리스트 끝에 요소가 추가됨.  - extend() : 리스트를 연결하여 확장extend()는 여러 개의 값을 추가할 수 있지만, 하나의 리스트나 튜플 등을 받아야 함.ㅇㅟ에서는 40과 50 두 개의 요소를 전달해서 오류 발생. - insert() : 특정 인덱스에 요소 추가리스트의 끝에 요소를 추가하는 것이 아닌 특정 인덱스에 요소를 추가할 수 있음.insert(1, [123, 456]) : 리스트 전체를 하나의 요소로 삽입.리스트 a의 길이가 4가 됨.a[1:1] = [123, 456] : 여러 개의 요소를 해당 위치에 삽입.[123..

Python 2025.02.22

[Python] 반복문

FOR 반복문으로 문자열 n번 출력하기range에서 in으로 숫자를 하나씩 꺼내서 반복.for는 숫자를 꺼낼 때 마다 코드 실행. 숫자 감소시키기 입력 횟수대로 반복하기실행 결과처럼 코드를 실행하면 반복횟수 가 출력되고 입력한 숫자만큼 반복. 시퀀스 객체로 반복하기WHILE 반복문초기식부터 시작해 조건식을 판별.조건식이 참(True)이면 반복할 코드와 변화식을 함께 수행.조건식을 판별하여 참(True)이면 코드를 계속 반복, 거짓(False)이면 반복문을 끝내고 다음 코드를 실행.  초기값 감소시키기 입력 횟수대로 반복하기반복 횟수를 정하지 않은 경우 무한루프>> WHILE에 TRUE를 지정하면 무한루프 BREAK, CONTINUE문>> while 무한 루프에서 반복문을 끝낼 수 있음.   while뿐 ..

Python 2025.02.22

[Python] 조건문

IF 조건문 중첩 if 조건문 사용하기ELSE를 사용해 두 방향으로 분기하기 조건문에 숫자 지정하기 조건문에 문자열 지정하기 조건식을 여러 개 지정하기 중첩 if 조건문은 and 논리 연산자를 사용해서 if 조건문 하나로 줄일 수 있음. ELIF를 사용해 여러 방향으로 분기하기- 참, 거짓으로 분기하기에는 한계가 있음.- 두 가지 이상의 다양한 상황이 발생.- 여러 가지 상황을 처리할 때.

Python 2025.02.21

[Python] 딕셔너리

딕셔너리(Dictionary)는 키(Key)와 값(Value)의 쌍으로 이루어진 자료구조.데이터를 효율적으로 저장하고 검색할 수 있는 해시 테이블 기반의 자료형.딕셔너리 생성하기딕셔너리는 키를 먼저 지정하고 :(콜론)을 붙여서 값을 표현.키에는 값을 하나만 지정할 수 있음.(키-값은 한쌍으로 1:1 대응) 처음 lux 생성 시 health는 490이 있고, 뒤에 health = 800을 넣을 때 키 health가 중복됨.>> lux 출력 시 health = 800이 나옴.>>> 키와 값을 저장할 때 키가 중복되면 가장 뒤에 있는 값만 사용.>>> 중복되는 키는 저장되지 않음.  딕셔너리 키의 자료형 빈 딕셔너리 만들기 dict() 사용하기딕셔너리 a를 만들 때 dict에서 키=값 형식으로 딕셔너리를 만들..

Python 2025.02.21

[Python] 리스트와 튜플 (2)

슬라이싱리스트나 튜플에서 범위를 지정해 여러 개의 요소를 가져올 때 사용[start : end : step] 형식 (end는 포함 x)start : 시작 인덱스end : 끝 인덱스step : 인덱스 증가폭기능인덱스슬라이싱목적하나의 요소 가져오기여러 개의 요소 가져오기형식시퀀스객체[n]시퀀스객체[start : end : step]슬라이스 사용하기- 시퀀스 슬라이스 : 시퀀스 객체의 일부를 잘라냄. 슬라이스로 리스트의 중간 부분 가져오기 인덱스 증가폭 사용하기 len 응용하기 시퀀스 자료형에 슬라이스 사용하기 슬라이스에 요소 할당하기>> 범위를 지정해서 요소를 할당했을 때는 원래 있던 리스트가 변경되며,새 리스트는 생성되지 않음.  인덱스 증가폭을 사용해 인덱스 할당하기 시퀀스 자료형에 요소 할당하기 del..

Python 2025.02.21

[Python] Pandas

서울시 구별 cctv 현황 분석을 활용해서 Pandas의 기본 기능과 사용법 학습하기.   csv 파일로 변경하고 저장하기 인코딩 csv 다시 저장 후 데이터 확인   # cctv 설치 연도 데이터df_years = df[df['구분'] != '계'].set_index('구분').drop(columns=['총 계'])# 각 지역구별 최댓값 찾기max_year = df_years.idxmax(axis=1) #최댓값 연도max_count = df_years.max(axis=1) # 최댓값 설치 개수df_max = pd.DataFrame({ '최다 설치 연도': max_year, '최다 설치 개수': max_count})print(df_max)>>

Python 2025.02.15