0. 목적 및 동기 저번주에 파이썬 중급과정 강의를 끝마치고 이번에는 코드잇이라는 강의 사이트를 결제를 해서 머신러닝 공부를 하려고 한다 내 목표는 8개의 토픽을 개강 전까지 다 듣고 실습하는 것이 목표 !! 1.1 데이터 사이언스란? 학교에서 시험 보는 시험지
파이썬으로 프로그래밍 할 때1\. 텍스트 에디터와 커맨드 라인 사용가벼움툴이 많지 않아서 실수 많이 할 수 있음2\. IDE (=통합 개발 환경)ex) Pycharm제공되는 툴이 굉장히 많다 ex) 디버깅 툴, 자동완성, 코드 스타일 교정소프트웨어ㅏㄱ 무거움, 익히기
원래 파이썬은 복잡한 수치 계산을 위해 만들어진 프로그래밍이 아닌데 이를 보완해서 만들어진 것이 Numpy이다.outputarray2 = numpy.array(\[1,2,3,4,5,6,7,8,9,10,11,12])type(array2)array2array2.shapen
예전에 R이 Python보다 인기가 많았던 이유 중에 하나는 dataframe인데 이를 파이썬이 pandas라는 이름으로 베껴옴numpy와 pandas는 뭐가 다를까?pandas는 numpy의 문법으로 만들어져서 numpy의 기능들이 기본적으로 pandas에 다 있다고
일단 iphone.csv 파일을 불러와줍니당output.loc은 pandas에서 data frame이나 Series에서 특정 행과 열을 선택하기 위해 사용되는 인덱싱 방법중 하나이다!해당하는 열의 값을 다 가져오고 싶으면output이렇게 해도 위와 동일하다output데
현재 dataFrame 에서 iphone 8 의 메모리는 2GB인데 2.5GB로 바꾸고 싶다면output이 처럼 수식을 이용해서 값을 바꿀 수 있다!!한 열을 통째로 바꾸고 싶다면?ex) iPhone 8 에 해당하는 열 통째로 바꾸기output불러와서 값을 확인한 후에
pandas에는 큰 dataframe을 다룰 수 있는 기능들도 있다 !!outputㄴ 167 rows x 15 columns 로 큰 데이터 !큰 데이터프레임에서 몇 줄만 가져오게 할 수도 있는데 슬라이싱 하듯이 윗줄 부터 가져오고 싶으면 .head()를 쓰면 된다out
시각화가 중요한 이유분석에 도움을 준다이상점을 찾을 수 있다대박 재밌당 ㅎㅎ선그래프를 불러오기 위한 명령어로 우리는 %matplotlib inline을 쓴다내 생각엔 %matplotlib이 그래프 명령어 이고 선그래프여서 inline을 붙인 듯그리고 csv 파일을 불러
9.1 Seaborn 소개 = Statistical Data Visualization 다양한 그래프를 사용할 수 있음 ! pandas 보다 더 근사한 그래프를 그릴 수 있다 9.2 확률 밀도 함수 (PDF) PDF = Probability Density Func
평균 = 데이터들의 합 / 데이터들의 개수데이터가 다 정수값들이어도 평균은 정수값이 안 올 수 있다중간값 (Median) = 데이터셋에서 딱 중간에 있는 값데이터 개수가 홀수일 때 )32 48 56 78 86 96 100ㄴ 여기서는 78이 중간값데이터 개수가 짝수일 때
EDA = 데이터셋을 다양한 관점에서 살펴보고 탐색하면서 인사이트를 찾는 것각 row는 무엇을 의미하는가?각 column은 무엇을 의미하는가?각 column은 어떤 분포를 보이는가?두 column은 어떤 연관성이 있는가?ex) 성별에 따라 특히 더 관심있는 분야는 뭔지
파일 열어보기output그래프화 시키면output채널들의 총 시청률output이걸 간단하게 적을 수도 있다outputcolumn에 추가해보자!!outputTotal을 그래프화 시키자output지상파와 종편을 나누어서 group1과 group2로 나눠보자output새로
머신러닝 : "기계 학습" = 기계가 학습을 통해 발전ㄴ 경험을 통해 스스로 업무 능력을 향상시킨다 != 기계가 학습한다는 건, 프로그램이 특정 작업을 하는 데 있어서 경험을 통해 작업의 성능을 향상시키는 것사용할 수 있는 데이터가 많아졌다 ( 데이터가 충분히 없으면
선형 대수학 = 일차식(가장 높은 차수가 1인 다항식)이나 일차 함수를 공부하는 학문일차함수의 예시)f(x,y) = 3x + 6y + 4행렬 (Matrix)행렬의 가로줄을 행(row), 세로줄을 열(column)이라고 부름위의 행렬은 3x4행렬이라고 부른다A21 = 2
함수ex) y = 3x + 6\-> 10이라는 input이 들어가면 36이라는 output이 나온다주의! 하나의 input에 대해서 하나의 output만 나온다 !!함수가 아닌 경우 )하나의 인풋에 두개의 아웃풋이 나오기 때문에 함수가 아닌 경우이다인풋이 여러개일 수도
데이터들 중 가장 적절한 선을 찾는 것가장 잘맞는 선 = 최적선단순하면서도 유용하고 다른 알고리즘의 기반이 된다 !선형회귀는 머신러닝의 지도학습, 비지도학습, 강화학습 중에 지도학습에 속한다 ! 그리고 지도학습은 분류와 회귀로 나뉘는데 선형회귀는 회귀에 속한당목표 변수
선형회귀 : 입력변수 1개 --(예측)--> 목표변수여러 입력변수를 사용하는게 다중 선형 회귀이다다중 선형 회귀는 시각적으로 표현하기 힘들다ㄴ 하지만 개념은 똑같다 !!입력변수를 속성이라고 한다이 표에서는 속성이 4개여서 n=4라고 한다그리고 입력변수는 4개이지만 목표
데이터들에 적합한 선이 꼭 직선이 아닐 수도 있다이렇게 ! 곡선일 수도 있다는 것 !!선형회귀에서 최적선이 직선일 때에 가설함수는였는데 곡선일 때에는이런식의 2차식으로 쓸 수 있고삼차함수일 때엔3차식의 가설함수를 써서이런 그래프를 나타낼 수 있다이렇게 데이터에 잘 맞는
ex) 어떤 이메일이 스팸인지 아닌지, 아니면 기사가 스포츠 기사인지 정치 기사인지 연예 기사인지.. 를 본다고 가정보통 분류 문제를 풀 때) 각 결괏값에 어떤 숫자 값을 지정해줌ex) 이메일이 스팸인지 아닌지 분류할 때이메일엔 0, 스팸에는 1 이런식으로ex) 공부한
scikit-learn도 아무렇게나 사용하면 성능이 떨어질 수 있다 !이번 토픽에선 머신 러닝 알고리즘의 속도와 정확도를 높이는 법이 이론들을 scikit-learn과 pandas 라이브러리에서 적용하는 법을 배우고자 한다 !!이는 앞으로 배울 수많은 머신 알고리즘에도
모델이 너무 간단해서 복잡한 곡선 관계를 학습할 수 없다 = 편향이 높다모델이 데이터들 사이의 관계를 완벽하게 학습했다 = 편향이 낮다그럼 편향이 낮은 모델이 항상 편향이 높은 모델보다 좋을까??ㄴ 꼭 그렇지는 않다이 모델은 training 관계를 완벽하게 이해한 모델
training set과 test set으로 나눠서 예측 및 평가를 하다보면 딱 이 test set에서만 성능이 안 좋을 수도 있음 \-> 이거를 막아주는게 k겹 교차 검증ex) 1000개의 데이터이 데이터 셋을 5개로 나눈다맨 앞 200개를 test set, 그 나머
결정 트리 : 예/아니오 질문들 + 이 질문들을 답해나가면서 분류 하는 알고리즘ex) 교통 사고 생존 여부 분류많게 나타낼 수도 있다중요 !! ) 한 속성을 딱 한 번만 사용할 수 있는 것은 아니다똑같은 속성을 여러번 사용 가능이번 과제에서는 위 결정 트리를 if-el
결정트리는 이상적인 머신 러닝 모델이 되기 힘든 한 가지 특징이 있는데 바로 부정확성이다이렇게 성능이 안 좋은 결정 트리가 그럼 왜 중요할까 ?\-> 응용하면 성능이 좋은 다른 모델들을 만들 수 있기 때문 !ㄴ 앙상블이라는 기법을 사용해서앙상블 : 하나의 모델을 쓰는
Bagging (Bootstrap aggregating)임의로 bootstrap 데이터 셋들을 만든다bootstrap 데이터 셋을 사용해서 수많은 모델들을 만든다이 모델들의 예측을 종합(aggregating)한다Boosting일부러 성능이 안 좋은 모델들을 사용한다더
: 특정 사용자가 좋아할만한 것을 찾아주는 프로그램더 좋은 추천 시스템을 만들면 사회적 이익이 있고 더 많은 매출로 이어진다ex) 유튜브유튜브는 사용자들이 광고를 보고 광고비로 돈을 번다\-> 계속 보고싶은 영상들을 추천해줘서 광고를 계속 보게 한다 -> 매출 up !
: 상품의 속성, 즉 '어떤' 상품인지를 사용해서 추천ex)머신 러닝 모델 학습각 영화들에 대한 속성과 한 유저의 평점 데이터를 갖고 있을 때 이런 식으로 데이터를 입력, 목표 변수로 나눠서 머신러닝 학습\-> 유저의 평점 예측 가능 !선형회귀 )입력 변수를 x, 목표
내용 기반 추천 : 상품의 속성, 즉 '어떤' 상품인지를 사용해서 추천ㄴ 한 유저의 평점이 다른 유저의 평점에 영향을 미치지 않는다\-> 유저들이 평점이 서로 독립적이다ex)우재와 현승은 같은 평점을 줌 = 영화 취향이 같은 사람영화 1과 영화 4를 보면 모든 사람이