파이썬 12

[코드스테이츠 PMB 14기] 어떤 유형의 영화가 돈을 많이 벌까?🔎| W6D4

들어가며 오늘은 데이터를 활용한 시각화를 연습해보도록 하겠다. 데이터 분석은 항상 데이터 선택으로만 한나절이고.. 원하는 데이터가 없어서 또 주제를 바꾸고 바꾸고 하다가 약 세 시간 만에 정착한 처음 정했던 주제인 '영화 순위 데이터'를 선정했다. 😂 1. Kaggle 또는 공공데이터 포털에 접속하여 본인이 관심 있는 주제의 데이터를 찾습니다. 영화관뿐만 아니라 집에서도 OTT 서비스를 통해 영화 시청을 하는 사람들이 늘고 있다. 영화 시청에 대한 진입장벽이 낮아진 만큼 수요도 늘고 있으며 이에 따라 다양한 영화가 제작되고 있다. 최근 대박이 났던 오징어 게임의 경우에도, 우리나라 감독과 우리나라 배우가 가득한 영화인데 넷플릭스 1위를 하여 굉장히 놀랐던 기억이 있다. 넷플릭스의 과감한 투자 덕에 오징어..

판다스로 데이터분석할때, 데이터 전체보기/요약해서보기

안녕하세요 ! 판다스로 데이터 분석을 하고 있었는데, 데이터가 자꾸 요약해서 출력되는 경우에 해결방법을 알려드리겠습니당. 이렇게 중간 데이터가 요약되어 한번에 볼 수 없는 경우! pd.set_option('display.max_rows',None) pd.set_option('display.max_columns',None) 이 코드를 추가해주시면 한눈에 볼 수 있어요! 행, 열만 잘 지정해주시고 None에서 대문자 주의해주세요 ٩(๑• ₃ -๑)۶♥ 연번을 확인하시면 중간 데이터임을 알 수 있고, 스크롤 보이시죠?! 내리면서 한 번에 전체 데이터를 조회할 수 있습니다 ✦‿✦ 만약, 다시 요약해서 보기를 원하신다면 pd.set_option('display.max_rows',30) pd.set_option('..

03. 데이터 전처리

데이터 전처리는 ML알고리즘 만큼 중요하다. 사이킷런의 ML알고리즘을 적용하기 전에 데이터에 대해 미리 처리해야 할 기본사항이 있다. 데이터 인코딩 = 레이블 인코딩, 원-핫 인코딩이 있다. 레이블 인코딩: 카테코리 피처를 코드형 숫자 값으로 변환하는 것이다. from sklearn.preprocessing import LabelEncoder items=['TV', '냉장고', '전자레인지', '컴퓨터', '선풍기', '선풍기', '믹서', '믹서'] #객체 생성 후, FIT()과 TRANSFORM()으로 레이블 인코딩 수행. encoder = LabelEncoder() encoder.fit(items) labels = encoder.transform(items) print('인코딩 변환값:', labe..

GridSearchCV

사이킷런은 GridSearchCV API를 이용해 Classifier나 Regressor와 같은 알고리즘에 사용되는 하이퍼 파라미터를 순차적으로 입력하면서 편리하게 최적의 파라미터를 도출할 수 있는 방안을 제공한다. 사용자가 튜닝하고자 하는 여러 종류의 하이퍼 파라미터를 다양하게 테스트하면서 최적의 파라미터를 편리하게 찾게 해주지만 동시에 순차적으로 파라미터를 테스트하므로 수행시간이 상대적으로 오래 걸린다. from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import GridSearchCV #데이터를 로딩하고 학습 데이터와 테스트 데이터 분리 ir..

6-3.p318~주성분 분석

구글 코랩 사용해서 실습했습니다~! 차원과 차원축소 데이터가 가진 속성을 특성이라 부른다. 과일사진의 경우 10,000개의 픽셀이 있기 때문에 10,000개의 특성이 있는 셈이다. 이런 특성을 차원이라고 부른다. 이 차원을 줄일 수 있다면 저장공간을 크게 절약할 수 있을 것이다. 비지도 학습 중 하나인 차원축소 알고리즘 대표적인 차원축소 알고리즘인 주성분분석 = PCA 기술적인 이유로 주성분은 원본 특성의 개수와 샘플 개수 중 작은 값 만큼 찾을 수 있다. 일반적으로 비지도 학습은 대량의 데이터에서 수행하기 때문에 원본 특성의 개수만큼 찾을 수 있다고 말한다. 앞 장과 동일하게 사진을 불러온다. !wget https://bit.ly/fruits_300_data -O fruits_300.npy import..

6-2.p303~ k-평균

구글 코랩을 사용해서 실습 진행했습니다 ! 1장에서는 사과, 파인애플, 바나나에 있는 각 픽셀의 평균값을 구해서 가장 가까운 사진을 골랐다. 이 경우에는 사과, 파인애플, 바나나 사진임을 미리 알고 있었기 때문에 각 과일의 평균을 구할 수 있다. 하지만 진짜 비지도 학습에서는 사진에 어떤 과일이 들어있는지 알지 못한다. 이런 경우 평균값은 k-평균 군집 알고리즘이 평균값을 자동으로 찾아준다. 평균값이 클러스터의 중심에 위치하기 때문에 클러스터 중심 or 센트로이드라고 부른다. k-평균 알고리즘 작동방식 무작위로 k개의 클러스터 중심을 정한다. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정한다. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경한다. 클러스터 중심에 변화가..

6-1.p286~ 군집 알고리즘

구글 코랩으로 작성했습니다! 과일 사진 데이터를 준비한다. !wget https://bit.ly/fruits_300_data -O fruits_300.npy +) 코랩의 코드 셀에서 "!"문자로 시작하면 코랩은 이후 명령을 파이썬 코드가 아니라 리눅스 셸 명령으로 이해한다. wget명령은 원격주소에서 데이터를 다운로드하여 저장한다. 그 다음 이 파일에서 데이터를 로드한다. import numpy as np import matplotlib.pyplot as plt fruits = np.load('fruits_300.npy') print(fruits.shape) 이 배열의 첫 번째 차원은 샘플의 개수, 두번째는 이미지 높이, 세번째는 이미지 너비이다. print(fruits[0,0,:]) 첫번째 행에 있는 ..

5-3.p263~ 트리의 앙상블

정형데이터를 다루는데 가장 뛰어난 성과를 내는 알고리즘 = 앙상블 학습 이 알고리즘은 대부분 결정 트리를 기반으로 만들어져 있다. 랜덤 포레스트 랜덤포레스트는 앙상블 학습의 대표 주자 중 하나로 안정저인 성능 덕분에 널리 사용되고 있다. ->결정트리를 랜덤하게 만들어 결정트리의 숲을 만든다. 그리고 각 결정 트리의 예측을 사용해 최종 예측을 만든다. 랜덤 포레스트는 각 트리를 훈련하기 위한 데이터를 랜덤하게 만드는데, 우리가 입력한 훈련 데이터에서 랜덤하게 샘플을 추출하여 훈련데이터를 만든다. 이때 한 샘플이 중복되어 추출될 수도 있다. 이렇게 만들어진 샘플 = 부트스트랩 샘플 사이킷런의 랜덤 포레스트는 기본적으로 100개의 결정트리를 전체 특석 개수의 제곱근만큼의 특성을 선택하며 훈련. 그 다음 분류일..

5-2.p242~ 교차 검증과 그리드 서치

테스트 세트를 사용해 자꾸 성능을 확인하다 보면 모델을 점점 테스트 세트에 맞추게 된다. 테스트 세트를 사용하지 않으려면 모델이 과대적합인지 과소적합인지 판단하기 어렵다. 테스트 세트를 사용하지 않고 이를 측정하는 간단한 방법은 훈련세트를 또 나누는 것이다. 이 데이터를 검증세트라고 한다. import pandas as pd wine = pd.read_csv('https://bit.ly/wine_csv_data') data = wine[['alcohol', 'sugar', 'pH']].to_numpy() target = wine['class'].to_numpy() from sklearn.model_selection import train_test_split train_input, test_input, t..

01-1p.26~03-2p.149

혼자 공부하는 머신러닝+딥러닝 교재를 구매해서 실습해보며 공부했습니다! 먼저, 생선 분류 문제를 위해 데이터셋을 정의합니다. bream_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0] bream_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0, 50..