Python 25

머신러닝 4강. 데이터 전처리

K-최근접 이웃 알고리즘으로 훈련한 데이터에 이상한 점이 발견되었다. 분명 테스트 세트의 도미와 빙어를 모두 올바르게 분류했는데 이 모델에 길이 25cm, 무게 150g 데이터를 넣고 결과를 확인해봤더니 당연히 도미(1)로 예측할 줄 알았으나 빙어(0)로 예측했다. 대체 근처에 있는 이웃이 뭐길래 빙어로 예측했는지 그래프로 확인해보자. import matplotlib.pyplot as plt plt.scatter(train_input[:, 0], train_input[:, 1]) # 모든 행의 length, wieght plt.scatter(test_input[:, 0], test_input[:, 1]) # 모든 행의 length, wieght plt.scatter([25], [150], marker="..

Python/머신러닝 2022.05.14

머신러닝 3강. 표준 점수

표준 점수(standard score) : 각 특성 값이 평균에서 표준편차의 몇 배만큼 떨어져있는지를 나타냄 A학교 60 80 80 80 100 => 400 (평균 80) -20 0 0 0 +20 => 평균으로부터 얼마나 떨어져 있는지의 점수 B학교 40 60 60 60 80 => 300 (평균 60) -20 0 0 0 +20 => 평균으로부터 얼마나 떨어져 있는지의 점수 정규분포는 가장 평균이 되는 곳에 가장 많이 몰려있다 평균에서 데이터가 얼마나 떨어져 있는지의 점수를 모두 더해서 평균을 낸 것을 분산이라고 한다. 1. 분산 (데이터 - 평균) 제곱의 합 / 데이터 개수 모든 데이터의 분산을 다 더하면 0이 나와서 평균을 구할 수 없다. 부호를 없애기 위해 제곱을 사용한다. -20 0 0 0 +20 ..

Python/머신러닝 2022.05.14

머신러닝 2강. Cross Validation

머신러닝 알고리즘은 크게 지도 학습과 비지도 학습으로 나눌 수 있다. 지도 학습 알고리즘은 훈련하기 위한 데이터와 정답(타겟)이 필요하다. 1강에서 봤던 마켓과 머신러닝에서 도미와 빙어의 길이와 무게를 알고리즘에 사용했다. 이 경우 정답을 도미인지 아닌지 여부이다. 지도 학습에서는 데이터와 정답을 입력(input)과 타겟(target)이라고 하며, 이를 합쳐 훈련 데이터라고 부른다. 입력으로 사용된 생선의 이름과 무게를 특성(feature)이라고 한다. 특성에 의해 타겟이 변경된다. 반면 비지도 학습 알고리즘은 타겟 없이 입력 데이터만 사용한다. 미리 학습하지 못하여 정답을 사용하지 않으므로 무언가를 맞힐 수가 없다. 대신 데이터를 잘 파악하거나 변형하는데 도움을 준다. 머신러닝 알고리즘의 성능을 제대로..

Python/머신러닝 2022.05.13

머신러닝 1강. 사이킷런

마켓과 머신러닝 - 도미와 빙어 데이터 준비하기 - 사이킷런 사용을 위해 2차원 리스트로 변경 - 데이터(fist_data)와 타겟 데이터(fish_target) 준비 - 학습(훈련) - 평가 - 예측 - 참고 사이트 : 캐글 https://www.kaggle.com/ 개발에 필요한 데이터들의 모임 1. 데이터 준비 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, ..

Python/머신러닝 2022.05.12

파이썬 11강. numpy

파이썬은 객체를 지향하는 언어는 아니다. 모든 게 1급 객체이기 때문에 기본 자료형이 값을 들고있는건 아무것도 없다는 말이다. 모든게 다 콜 바이 레퍼런스! 포인터인 것이다. 사이즈를 모르기 때문에 모두 heap 주소를 참조한다. 레퍼런스 타입의 단점은 항상 점프해야한다. 20번 주소로 갔더니 300번지라고 적혀있어서 300번지로 가면 안녕이라는 데이터가 있다. 300번지가 포인터인것이다. 찾아갔을때 값이 바로 있는게 찾기 빠른데, 주소가 있어서 한번 더 찾아가야 하면 느려지기 때문에 나온게 numpy 라이브러리이다. 수치연산 라이브러리! 장점 1. 차원을 다루기 좋은 메서드를 많이 제공한다. 2. call by reference 단점 해결 → numpy 라이브러리를 사용하는 순간 API가 된다. num..

Python 2022.05.12

파이썬 10강. 주피터 노트북 설치 및 실행

아나콘다를 설치하면 그 안에 주피터 노트북이 있다. https://www.anaconda.com/ Anaconda | The World's Most Popular Data Science Platform Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities. www.anaconda.com next만 계속 눌러서 설치를 완료해준다. 검은창은 백그라운드로 돌고있는 서버이기 때문에 끄면 안된다. 브라우저 창이 하나 열릴 것이다. 새폴더 추가 폴더명 변경 파일 생성 파일명 변경 Shift + Enter 실행 전체 코..

Python 2022.05.09

파이썬 9강. 머신러닝 딥러닝

전제조건 : 데이터가 있어야 함 전 세계 IPv4 주소 32억 개 - DNS 등록된 것들! -> Http Request -> 다운(샤딩-병렬) - 검색 플랫폼을 할 건데 검색이 중요한 게 아니라 실시간 지속적인 수집이 화난다 - 이건 알고리즘만으로 되는 게 아니라 돈이 필요함 -> 투자를 받아서 돈을 모아 하드웨어 구매하여 수집에 성공함 - 검색 로봇 (명백히 알고리즘으로 가능) 모든 사이트들은 구글에 검색이 되려면 html 헤더에 meta name="robots"라고 적어둬야 한다. 지금은 자바스크립트 걸어두는 것으로 바뀌었음! - 도서 프로젝트 (전 세계 모든 책 다 모으기 - 전자문서화) 이 그림을 보고 text로 분석하기 위해서 수많은 "안녕"이라는 글자를 찾아봤겠지만 이런 빅데이터가 없다. 데이..

Python 2022.05.09

파이썬 8강. 네이버뉴스 크롤링

네이버 뉴스의 카테고리별로 주소 구조를 살펴보니 sid1이 카테고리 변수인 것을 확인할 수 있다. 1. 전체 페이지 다운로드 https://n.news.naver.com/mnews/article/088/0000756435?sid=100 (매일신문) https://n.news.naver.com/mnews/article/586/0000038374?sid=100 (시사저널) https://n.news.naver.com/mnews/article/123/0002273936?sid=100 (한국경제TV) https://n.news.naver.com/mnews/article/005/0001523282?sid=100 (국민일보) 100 -> 카테고리 -> 변수명 : sid1 088 -> 신문사 -> 변수명 : oid ..

Python 2022.05.03

파이썬 7강. 데이터 수집 - 크롤링

자바에서는 html을 다운받아 파싱 할 때 Jsoup를 썼는데, 파이썬에서는 beautifulSoup라는 html 파서를 사용한다. https://pypi.org/project/beautifulsoup4/ beautifulsoup4 Screen-scraping library pypi.org $ python -m pip install beautifulsoup4 날씨 정보를 가져와보자. from bs4 import BeautifulSoup 내가 필요한 데이터는 20도라는 숫자이다. 해당 숫자에 마우스 우클릭하여 검사해보니 blind라는 클래스로 감싸져 있다. document.querySelector로 blind 돔을 찾아보면 blind 클래스로는 내가 원하는 데이터를 찾을 수 없다. class는 디자인이기 ..

Python 2022.05.02

파이썬 6강. 데이터 수집 - 공공 데이터

API 데이터를 다운받을 때는 requests 라이브러리 설치가 필요하다. python -m pip install requests requests에서 get, post, update, delete를 모두 지원하고, get 메서드에 url 주소만 넣어주면 데이터를 바로 받을 수 있다. # 데이터 다운로드 # python -m pip install requests 라이브러리 다운로드 # Scripts 폴더 환경변수 잡으면 pip부터 할 수 있음 import requests response = requests.get("http://apis.data.go.kr/1360000/TourStnInfoService/getCityTourClmIdx?serviceKey=dSHJNipMJz%2BPWTt9UN2qgExW7ql..

Python 2022.05.02