썸네일 20일차 - 지도학습 3 그래디언트 부스팅 회귀 트리 여러 개의 결정 트리를 묶어 강력한 모델을 만드는 앙상블 기법 중 하나. 이름은 회귀지만 회귀와 분류에 모두 사용 가능 장점 지도학습에서 가장 강력함. 가장 널리 사용하는 모델 중의 하나 특성의 스케일 조정이 불필요 -> 정규화 불필요. 단점 매개변수를 잘 조정해야 한다는 것. 긴 훈련 시간. 트리 기반 모델을 사용. -> 희소한 고차원 데이터는 부적합. (특성이 많고 값이 별로 없는 데이터셋) 매개변수 n_estmators: 트리의 개수 지정 너무 클 경우 모델이 복잡해지고 과대적합 가능성 learning_rate: 이전 트리의 오차 보정 강도 조절. 메모리 한도에서 n_estimators 부터 설정. 이후 적절한 learning_rate 설정. 학습률이 크면 트리를 강하게..
썸네일 18일차 - 지도학습 1 주피터 한글 폰트 # 사용자 운영체제 확인 import platform platform.system() # 운영체제별 한글 폰트 설정 if platform.system() == 'Darwin': # Mac 환경 폰트 설정 plt.rc('font', family='AppleGothic') elif platform.system() == 'Windows': # Windows 환경 폰트 설정 plt.rc('font', family='Malgun Gothic') plt.rc('axes', unicode_minus=False) # 마이너스 폰트 설정 # 글씨 선명하게 출력하는 설정 %config InlineBackend.figure_format = 'retina' k-최근접 이웃 회귀 회귀: 끊어지지 않는 애매한 ..
썸네일 10일차 - Matplotlib, Seaborn matplotlib 차트나(chart)나 플롯(plot)로 데이터 시각화 - 라인 플롯(line plot) - 스캐터 플롯(scatter plot) - 컨투어 플롯(contour plot) - 서피스 플롯(surface plot) - 바 차트(bar chart) - 히스토그램(histogram) - 박스 플롯(box plot) import matplotlib as mpl import matplotlib.pyplot as plt %matplotlib inline 라인 플롯 그래프 그래프 스타일 지정 그래프를 여러 스타일로 지정할 수 있음. 그래프의 색 데이터의 위치를 표시하는 기호 선 스타일 ... 색 색 이름 기호 blue b green g red r cyan c magenta m yellow y bla..
썸네일 9일차 - Pandas 2 데이터 프레임의 데이터 조작 데이터 세기 ( count, value_counts ) count ( ) : 데이터 개수 세기. value_counts ( ) : 각 종류별로 몇 개의 데이터가 있는지 세어주는 것. df.value_counts(subset = None, normalize = False, sort=True, ascending=False, dropna=True) 속성 내용 subset 기준으로 삼을 열 입니다. list형태로도 입력이 가능.. normalize 갯수가 아니라 비율로 출력. sort 빈도 순서로 정렬할지 여부.기본값은 True입니다. ascending 오름차순으로 정렬할지 여부. dropna 결측치를 제외할지 여부. 데이터프레임 정렬 sort_index ( ) 인덱스를 기준으로 레..
썸네일 8일차 - Pandas 1 Pandas 표 형식의 데이터나 다양한 형태의 데이터를 다룸 시리즈(Series) 클래스와 데이터프레임(DataFrame) 클래스를 제공 Series 일련의 객체를 담을 수 있는 1차원 배열 같은 자료구조. 1치원 배열과 달리 값뿐만 아니라 각 값에 연결된 인덱스 값도 동시에 저장. 시리즈 객체는 라벨 값에 의해 인덱싱 가능하므로 인덱스 라벨 값을 키로 갖는 딕셔너리 자료형과 같다고 볼 수 있음.(in, items, key와 value 접근) pandas.Series( data, index, dtype, copy) data series를 구성할 데이터 index index 지정. dtype 각 항목에 적용될 타입. Series.values : Series 값 추출. Series.index : index ..
썸네일 7일차 - Numpy 2 팬시 인덱싱 (Fancy indexing) 정수 배열 인덱스 리스트나 ndarray로 인덱스 집합을 지정하면 해당 위치의 인덱스에 해당하는 ndarray를 반환. 정수나 불린(Boolean) 값을 가지는 다른 Numpy 배열로 배열을 인덱싱할 수 있는 기능을 의미. Boolean 값을 가진 배열을 사용하여 직관적으로 인덱싱 가능 [ ] : 대괄호 사용 → [ [ ] , ] : 대괄호 안에 넣으면 반환 값이 ndarray가 됨. [ , ] : 대괄호 안에 , 사용 [ , ] , [ , ] : (0, 0) (1, 1)의 값이 들어가있는 ndarray를 반환. 슬라이싱을 할 때는 큰 범위로 붙어있는 값만 추출할 수 있지만 팬시 인덱싱은 원하는 요소만 추출할 수 있음. 배열 크기 변환 reshpae(차원) 배열..
썸네일 6일차 - Numpy 1 아나콘다 설치하기 https://www.anaconda.com/ 주피터 노트북 실행하기 셀 사이에 주석 대신 텍스트로 입력 가능. Cell → Cell Type → Markdown NumPy(Numerical Python) 제공 빠르고 효율적인 다차원 배열 객체 ndarray 배열 원소를 다루거나 배열 간의 수학 계산을 수행하는 함수 디스크로부터 배열 기반의 데이터를 읽거나 쓸 수 있는 도구 선형대수 계산, 푸리에 변환, 난수 생성기 파이썬 확장과 C, C++ 코드에서 NumPy 의 자료 구조에 접근할 수 있음 대용량 데이터 배열을 효율적으로 다룰 수 있음. 내부적으로 데이터를 다른 내장 파이썬 객체와 분리된 연속된 메모리 블록에 저장 내장 파이썬의 연속된 자료형들보다 더 적은 메모리 사용 파이썬 반복문..
5일차 - 타자 게임 프로그램 만들기 """ 타자 게임 ex: 문제 출력 함수 count: 맞춘 타자 개수 a_count: 전체 문제 개수 """ import random as rd import time list_animal = ["강아지", "고양이", "토끼", "사바나캣", "너구리", "붉은여우", "사막여우", "북극여우", "자칼", "가로줄무늬자칼", "코요테", "딩고", "서벌", \ "오셀롯", "페럿", "스컹크", "라쿤", "수달", "몽구스", "미어캣", "이집트몽구스", "사향고양이", "코아티", "햄스터", "골든햄스터", "드워프햄스터", \ "저빌", "마멋", "친칠라", "알라꼬리여우원숭이", "프레리도그", "청설모", "다람쥐", "하늘다람쥐", "시궁쥐", "팬더마우스", "캥거루쥐", "카피바라..
썸네일 4일차 - python 함수, 모듈, 파일과 예외 처리, 객체지향 프로그래밍 함수란? 함수는 수학에서의 '함수' 개념과 '함수'의 영어 단어인 function이 가지는 '기능'이라는 의미를 모두 가진다. 내장함수 종류 파이썬 안에서 기본적으로 사용할 수 있는 함수. 사용자 정의 함수 (함수의 정의와 호출) 내가 직접 만드는 함수! """ 함수 생성 및 호출 """ # 함수 정의는 위에다가 하기! def hello(): print("안녕하세요!") # 메인 루틴(실제로 프로그램이 시작할 때 실행되는 부분) # 실제로 시작되는 코드 # 사용자가 만든 hello 함수를 출력 hello() hello() hello() def 로 직접 자신이 함수를 만들 수 있다! 사용자 함수의 정의는 메인 루틴보다 위에다가 작성해야 함! * 메인 루틴: 실제로 프로그램이 시작할 때 실행되는 부분. 함수..
썸네일 3일차 - python 리스트, 튜플, 딕셔너리 리스트란? - 여러 개의 데이터를 하나의 변수에 담을 수 있는 데이터 구조 - [ ] 대괄호 사용 score = [90, 89, 77, 95, 67] fruit = ["apple", "banana", "orange"] """ 리스트 생성 """ # 1) []을 이용하여 리스트 생성 -> 값을 직접 넣어서 생성 list1 = [3, 15, -12.5, "사과", "딸기" ] print(list1) # 2) list() 함수로 리스트 생성 list2 = list(range(1, 21, 2)) print(list2) 리스트는 데이터 형식 상관없이 숫자, 문자 형식의 정보를 한 곳에 저장 가능. """ 리스트에서 요소 추출 """ color = ["빨강", "주황", "노랑", "초록", "파랑", "남색", ..
썸네일 2일차 - python 조건문과 반복문 python 조건문 if 문의 종류 """ if문의 동작 원리 """ x = int(input("정수를 입력하세요: ")) if x > 0: print("입력된 수는 양수입니다.") print("입력된 수는 양수입니다.") # 출력: 입력된 수는 양수입니다. # 입력된 수는 양수입니다. 비교 연산자와 논리 연산자 a = 10 b = 20 a == b # 출력: False a != b # 출력: True a > b # 출력: False + 논리 연산자 """ (조건1) score1이 80보다 크면서 (조건2) score2가 80보다 클 때 - and """ score1 = 75 score2 = 90 score1 >= 80 and score2 >= 80 # 출력: False score1 = 85 score2..
썸네일 1일차 - python 기본 문법 문자열 연결 연산자 name = "김정수" hello = "안녕하세요!" print(name + "님 " + hello) 문자열 추출 (슬라이싱) s = "안녕하세요.반갑습니다." s[0] # 출력: 안 s[1] #출력 : 녕 s[3:10] #출력: 세요. 반갑습 문자열 연결 오류 예 score = 80 print("성적: "+ score) 문자열에 숫자를 입력할 때 생기는 오류이다. 문자열 안에 숫자를 입력할 시 정수형을 문자열로 형변환시켜 입력한다. 형번환 문자 -> 숫자 / 숫자 -> 문자 print("성적: " + str(score)) * 문자열 반복 연산자 * 신기한 문법 x = "토끼" * 10 문자열의 길이 - len() x = "가는 말이 고와야 오는 말이 곱다." n = len(x) pr..