728x90

파이썬 15

파이썬 코드 디버깅

파이썬 코드 디버깅을 할 때에는 print를 사용하는 것보다는 아래와 같이 logging 모듈을 이용하는 것이 좋습니다. print 문을 이용하면 아래와 같은 단점이 있습니다. 성능 문제: print 문은 I/O 작업이므로 성능에 영향을 줄 수 있습니다. 로그 관리: print로 출력된 로그는 쉽게 관리되거나 저장되지 않습니다. 불필요한 출력: 프로덕션 환경에서 불필요한 출력은 혼란을 초래할 수 있습니다. 이러한 문제를 해결하기 위해, 일반적으로 로깅 모듈을 사용하여 로그를 관리합니다. Python의 표준 라이브러리인 logging 모듈을 사용하면 됩니다. logging 모듈을 사용하면 다음과 같은 장점이 있습니다: 로그 레벨 설정: DEBUG, INFO, WARNING, ERROR, CRITICAL 등..

파이썬(Python) 2023.10.29

[파이썬으로 살펴보는 아키텍처 패턴] 00. 도입

이 글은 "파이썬으로 살펴보는 아키텍처 패턴" 책을 보며 정리한 내용입니다. 자세한 내용은 책을 통해서 확인 가능합니다. 파이썬으로 살펴보는 아키텍처 패턴: TDD, DDD, EDM 적용하기 - 교보문고 고수준 아키텍처 패턴을 적절한 위치에서 활용하는 능력을 키워보자 이 책은 파이썬을 활용한 실전 예제를 통해 도메인 주도 개발을 설명한다. 설명하는 과정에서 이론이나 실무에 지나치게 치 www.kyobobook.co.kr 0.1 설계가 왜 잘못되는가? 소프트웨어 시스템도 혼돈 상태로 향하려는 경향이 있다. 시스템을 처음구축할 때는 코드를 깔끔하게 질서 잡힌 상태로 유지하기 위해 원대한 계획을 세운다. 하지만 시간이 지남에 따라 잘못 구현한 부분이라 에지 케이스(잘 일어나지 않는 드문 경우)를 처리하기 위한..

파이썬(Python) 2021.10.21

1부터 10까지 숫자를 합하는 알고리즘

가장 기초적인 알고리즘인 범위내의 숫자를 합하는 알고리즘이다. 숫자를 합하는 알고리즘은 대표적으로 2가지 방법이 있는데, 첫 번째 방법은 반복문을 이용해 숫자를 더하는 방식이다. 이 방식은 쉽지만 시작과 끝 숫자의 차이가 크다면 그만큼 반복을 해야하기 때문에 성능에 영향을 줄 수 있다.두 번째 방법은 천재 수학자인 가우스가 사용했다고 알려진 방법이다. 공식은 아래와 같다. $$\frac{n(n+1)}{2}$$ 1부터 100까지 더하는 문제라면 \(\frac{100(100+1)}{2}\) 이다. 이와 같은 알고리즘을 이용하면 반복문을 사용하지 않고 한번의 계산으로 값을 구할 수 있다. 그림으로 보면 아래와 같다. 제일 앞의 숫자와 제일 마지막 숫자의 합을 더하면 항상 101이 나온다. 그럼 1 부터 시작해..

추천시스템 Overview

추천시스템 Overview추천의 사전적 의미어떤 조건에 적합한 대상을 책임지고 소개함(Naver 국어사전)추천의 관점 기준 분류사용자 관점사용자의 취향과 선호도를 파악함사용자의 선호도가 높을 것으로 예상되는 아이템을 예측하거나 제공함서비스 제공자 관점서비스 제공자가 목표로 하는 KPI(매출, Page View 등)를 달성함추천 사례아마존매출의 35%가 추천을 통해 발생넷플릭스대여되는 영화의 2/3가 추천 영화를 경유구글 뉴스38% 이상의 조회가 추천 뉴스를 경우추천 관련 용어정의User사용자Item추천이 되는 대상업종에 따라 다를 수 있음(예 : 온라인 서점 - 책, 넷플릭스 -영화)Rating사용자 아이템에 대한 선호도 평가 점수Preference / Taste선호 / 취향System Architect..

파이썬을 활용한 추천 시스템 구축을 위한 스터디

현재 쇼핑몰에 적용할 추천 시스템을 구축하는 프로젝트를 진행하는데, 프로젝트에 새로 투입될 회사 신입사원들 교육을 해야하는 상황이라 이왕 시작한거 이론적인 내용도 정리할 겸 교육 자료 만들 겸 신입사원이 이해할 수 있는 수준으로 내용을 정리해보려고 한다. 스터디 목차는 아래와 같다. 추천시스템 개요추천시스템 Overview추천시스템의 분류추천시스템의 성능평가추천시스템의 고려사항평점 예측을 이용한 영화 추천수학적 배경지식 리뷰영화 평점 예측 OverviewContent-based Filtering 모델을 이용한 평점 예측Collaborative Filtering 기반 영화 평점 예측Collaborative Filtering 기반 온라인 쇼핑몰 상품 추천고급 추천 시스템Matrix FactorizationB..

2-1 분류와 회귀

지도 학습에는 분류(Classification)와 회귀(Regression)이 있다. 분류는 미리 정의된, 가능성이 있는 여러 클래스 레이블 중 하나를 예측하는 것이다. 앞 장에서 붓꽃의 품종을 예측하는 것은 분류에 속한다. 분류는 두 개로 분류하는 이진 분류(binary classification)과 셋 이상으로 분류하는 다중 분류(multiclass classification)으로 나누어 진다. 이진 분류는 예 / 아니요만 나올 수 있다고 보면 된다. 남자, 여자로 나눌 수도 있지만, 남자인가? 라는 질문에는 예와 아니요로 바꿀 수 있기 때문에 결국 예 / 아니요라고 볼 수 있다.붓꽃 예제의 경우 3개의 클래스를 가지고 있기 때문에 다중 분류이다. 회귀는 연속적인 숫자(실수)를 예측하는 것이다. 어떤..

1-5 파이썬 2 vs 파이썬 3

지금도 파이썬 2와 파이썬 3 버전이 함께 사용되고 있다. 하지만 파이썬 2는 더 이상 큰 개선은 없으며 파이썬 3에서 변경 사항이 많아 파이썬 2로 작성한 코드는 파이썬 3에서 실행되지 않는 경우가 많다. 처음 파이썬을 사용하는 사람은 파이썬 3로 시작하는 것을 권장한다. 파이썬 2로 작성한 코드는 가능한 빨리 파이썬 3로 업그레이드 하는 것이 좋다. 코드가 파이썬 2와 3에서 모두 실행되기 위해서는 six 패키지를 사용하면 된다. 아래 내용은 파이썬 2와 3에서 주요하게 차이나는 항목이다.print 함수 파이선 2에서는 괄호를 사용하지 않아도 되지만, 파이썬 3에서는 print("hello world")와 같이 괄호를 사용해야 한다.줄바꿈 코드 파이썬 3에서는 print("hello");print("..

1-6 머신러닝 애플리케이션을 만들기 위한 소프트웨어 버전

앞으로 진행될 머신러닝 학습을 하기위해서 실습환경이 강좌에서 사용하는 환경과 유사한지 확인하는 것이 좋다. 모든 라이브러리의 환경이 같을 필요는 없지만 최소한 scikit-learn은 최신 버전인 것이 좋다. In [3]:# S/W 버전 확인하기 import sys print("Python 버전 : {}".format(sys.version)) import pandas as pd print("pandas 버전 : {}".format(pd.__version__)) import matplotlib print("matplotlib 버전: {}".format(matplotlib.__version__)) import numpy as np print("Numpy 버전 : {}".format(np.__version__..

1-2 왜 파이썬인가?

파이썬은 데이터 과학 분야를 위한 표준 프로그래밍 언어가 되어 가고 있다. 파이썬은 범용 프로그래밍 언어의 장점과 매트랩, R과 같은 특정 분야를 위한 스크립팅 언어의 편리함을 함께 갖추었다. 파이썬은 데이터 적재, 시각화, 통계, 자연어 처리, 이미지 처리 등에 필요한 라이브러리들을 가지고 있다. 이와 같은 다양한 도구들이 데이터 분석에 필요한 유용하고 편리한 기능들을 제공한다. 또한 주피터 노트북과 같은 도구로 코딩하고 바로 결과를 확인할 수 있다는 장점도 있다. 범용 프로그래밍 언어로서 파이썬은 복잡한 그래픽 사용자 인터페이스(GUI)나 웹 서비스도 만들 수 있으며 기존 시스템과 통합하기도 좋다. 웹서비스를 만들기 위해서 많이 사용하는 장고(django)와 플라스크(flask)가 있다. 목차로 이동하기

파이썬 라이브러리를 활용한 머신러닝 요약

파이썬의 scikit-learn 라이브러리를 활용한 머신러닝 스터디를 진행면서 아래 순서대로 정리해보려고 한다. 소개왜 머신러닝인가?왜 파이썬인가?scikit-learn필수 라이브러리와 도구들파이썬 2 vs 파이썬3머신러닝 애플리케이션을 만들기 위한 소프트웨어 버전첫 번째 머신러닝 모델 : 붓꽃의 품종 종류요약지도학습분류와 회귀일반화, 과대적합, 과소적합지도 학습 알고리즘분류 예측의 불확실성 추정요약 및 정리비지도 학습과 데이터 전처리비지도 학습의 종류비지도 학습의 도전 과제데이터 전처리와 스케일 조정차원 축소, 특성 추출, 매니폴드 학습군집요약 및 정리데이터 표현과 특성 공학범주형 변수구간 분할, 이산화 그리고 선형 모델, 트리 모델상호작용과 다항식일변량 비선형 변환특성 자동 선택전문가 지식 활용요약 ..

728x90