본문 바로가기

스파르타 내일배움캠프

TIL 14 머신러닝 첫걸음 About kaggle??

 

 

 

머신러닝
기계를 학습시킨다 인공지능?? 인공지능 안 머신러닝  머신러닝 안 딥러닝
선형 회귀 (제일 기초)
구글,Stackoverflow 영어 단어를 많이 써야된다..
구글링의 중요성... 구글링을 많이 해봐야된다..

머신러닝이란 무엇인가?? 

알고리즘 - 수학자나 과학자들이 정해놓은 절차대로 만들어놓은 체계

순서대로 반복적 알고리즘 문제라는것이 무엇인가? 

머신러닝을 사용하여 반복적인 작업이 용이하여 

딥러닝 이미지 처리 , 텍스트 인식, 챗봇,내가 말하는것을 따라하는 인공지능

딥러닝 OR 머신러닝 같은 게 핫해진다

머신러닝 회귀와 분류 나눌수가있다

분류 OR 회귀는 우리가 정하는것

그것에따라 설계 방법이 달라진다

회귀(Regression) 연속적인 문제를 예측하도록 하는 것 ex)사진으로 나이 예측
출력값은 일반적으로 포인트 소수값 floating point 머신러닝에서는그렇게씀

비연속적인 문제를 풀때 

입력값 공부한 시간
출력값 이수 여부(pass or fail)
이수 0 미 이수 1

클래스를 나누는 것 Classification) 분류 이진 클래스 (Binary class)

대학교 성적 (A,B,C,D,F)
multi class classification multi label classification

불연속적인 문제 비연속적인 문제

근데 회귀랑 분류 둘 다 가능한 문제

나이를 클래스로 나누고 classification 느낌으로 분류해서 풀수도있다

문제를 정의할때 인풋값과 아웃풋값 정해놓고 하면 편리하다

머신러닝에서 학습하는 방법 지도학습,비지도학습,강화학스 Supervised Learning
Regression Unsupervised Learning 정답값이 있느냐 없느냐로 나뉜다

정답값이 있는게 더 쉽다 강화 학습 머신러닝의 꽃 게임이나 실시간처리에 많이 쓰인다

지도학습에 대해서 정답을 알려주면서 학습시키는 방법

사과라고 알려주면서 모델에 학습 

정답값이 있으면 지도학습

 비지도학습 정답을 알려주지않고 군집화(Clustering) 하는 방법

강화학습
알파고 10점  -보상 줄수도있다 잘할때마다 사탕을 주는 느낌

게임을 예로 게임환경내에서 현재 state 상태 어느 곳에 놨더니 액션

선형 회귀 가설(hyphothesis)

트레이닝셋 validation set testing set


Cmd/Ctrl + Enter 현재 셀 실행
Shift + Enter 현재 셀 실행 후 다음 셀로 이동 (다음 셀이 없으면 새로 생성)
Alt + Enter 현재 셀 실행 후 다음 셀 생성하여 이동

import os
os.environ['KAGGLE_USERNAME'] = '이름넣기' # username
os.environ['KAGGLE_KEY'] = '52d0f46df6394311e76349df85874af1' # key

csv 파일 => comma-separated values의 약자 콤마로 구분되어있는 값들

시스템 명령어를 사용할때는 앞에 !를 붙여줘야된다

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam, SGD
import numpy as np
기본으로 쓴다

keras는 np array로 바꿔준 언어만 취급한다

data값은 변하지않지만 reshape과정을해야 keras가 인식하기가편하다

학습데이터 80% training set
검증데이터 20%  validation set
실무 (학습 검증 testing set)으로 나눔

 

 

 

kaggle 계정생성후 account설정을 들어가즈아~

 

 

accout항목에있는 api에서 토큰을 생성

토큰을 생성하게되면 pc다운을하게된다 그러면 그 api 토큰을 사용해 우리가 구글 colab에서 kaggle 계정을 사용하기위해 username하고 key 값을 넣어준다. 저 json 파일을 보기위해선 크롬탭에 드래그하면 거기에 json에 해당하는 값(계정 아이디,키 값) 을 볼수있다.

 

import os
os.environ['KAGGLE_USERNAME'] = '이름넣기' # username
os.environ['KAGGLE_KEY'] = '키값넣기' # key 

 

kaggle

advertising api 코드를 사용할떄 채용해옴

 

첫날부터오류??

https://github.com/Kaggle/kaggle-api/issues/279

 

kaggle api returns 401 - Unauthorized · Issue #279 · Kaggle/kaggle-api

I can't download kaggle data via kaggle api, either on local and on google colab. I can download data on kaggle GUI, which means I successfully enrolled in the competition. I followed the proce...

github.com

 

검색을해보니 토큰을 만료시키고 재발급하면 잘 돌아간다고 말해서 해결 ㅎㅎ

 

keras는 np array로 바꿔준 언어만 취급한다

 

 

data값은 변하지않지만 reshape과정을해야 keras가 인식하기가편하다

 

 

 

같은 경우 (한 예제) 
adam absolute (lr 좀 크면 비슷해짐)

sgd square (lr 0.01 작으면 비슷해짐) 

 

 

 

오늘 팀이 바뀌어서 민주적인방법으로 팀장으로의 굴레를 벗어나서 너무 기분좋았다. 새로운 팀원들과의 만남은 늘 두려움 반 기대 반 이었지만 진짜 성격 좋으신분들과 같은 조가 되어서 너무 좋았고 걱정을 진짜 많이했었는데 혹시라도 팀에 피해가 가는건아닐까 우린 할 수 있을까 이런부분에 대해서 진짜 많이 고민했었는데 새로바뀐 내가 10조팀장이였는데 옆조 9조 팀장님 김동우팀장님이 또 우리 4조의 팀장님이 되셔서 그 기분아니까 막 표현은 하지 않았지만 진짜 그 중압감은 엄청나다. 김동우 팀장님께서는 전공자이시며 개발경험이 그래도 조금 있기에 확실히 조금 여유롭기도하고 협업하는 부분에있어서 확실히 그 경험이 무시못할만큼 여유로움과 어떤 그런 구체적인 가치관들이 정해져있었다. 생각보다 자유로운 분위기로 이끌어갈거고 프라이버시 잘지켜주면서 뭔가 허슬하자는 느낌보다 우리의 인생의 행복의 가치 혹은 건강적인부분을 고려해서 운동할수있는 개인시간도 가져가자는 이야기를하였다. 핵심은 시간안에 효율을 최대한 내서 내가 할 수 있는 일들을 확실하게하는것이다. 팀을 이끌어가는데 있어서 처음으론 팀명을 정하고 이것저것 서로의 취미혹은 서로 어떤지에 대해서 알아갈려고 노력하는 부분들 또 가장 중요했던부분이라고 생각했던부분은 일정을 바로정했던부분이다. 팀원으로써 만난 시간이 짧긴했지만 어떻게 시간을 효율적으로 이용하는것에 특화되어있는거같다. 나는 시간을 효율적으로 잘 활용을 못해서 근성으로 버틸려고 했던거같고 확실히 이렇게 구체화하면서 내가 어떤 일정을 잡고 어떻게 어떤이유로 어떤부분을 공부하고 이부분에대해서 모르게되면 바로바로 팀원들과 공유하면서 이러한 분위기를 잡아갈려는 그런 팀장님의 분위기 잡아가는모습이 너무좋은거같아서 앞으로도 더 열심히 임할거같다. 이제는 팀장으로 부담도 놓았으니 내가 내 포지션에서 할수있는 최대한의 노력과 또 성장을 이뤄낼것이다. 위에 했던것들은 내가 오늘 공부했던 내용을 정리해놓은것이다. 가장 기본적인것이라고 느낄수있지만 지나치기엔 너무나도 소중한 부분들같다. 저런것들을 하나둘씩 쌓아야 복잡한과정이 이루어진다고생각한다.