- 배열 연속된 메모리 공간에 순차적으로 저장된 데이터들의 집합이다. 동일한 배열 내에 있는 데이터들은 모두 동일한 데이터 타입을 지닌다. 장점 1. 각 데이터에 접근하는 시간이 동일하게 O(1)로 빠르다. 2. 따로 포인터 등의 부가정보를 가질 필요가 없기 때문에 공간 낭비가 적다 단점 1. 처음 선언할 때부터 크기가 정해져있기 때문에 유연한 프로그래밍에 제약이 있고 불필요한 메모리를 차지할 수 있다. 2. 중간 데이터를 삽입 또는 삭제할 때 뒤에 데이터들을 모두 변경해야 한다. - 연결리스트 노드(데이터의 묶음)를 연결시킨 자료구조 각 노드에는 그 노드의 핵심정보인 key와 다음 노드를 가르키는 포인터인 next가 포함되어 있음 첫번째 노드는 head, 마지막 노드는 tail 장점 1. 데이터 변경 ..
로지스틱 회귀모델의 배경 선형 회귀모델의 경우 입력변수에 따른 출력변수는 연속성을 가지고 있다. 하지만 출력변수가 연속형 변수인 모델 뿐만 아니라 이진변수나 멀티변수 같은 범주형 데이터를 갖는 모델도 많다. 이러한 모델들을 다루기 위해서 선형 회귀모델과는 다른 방식으로 접근해야할 필요가 있는데 그것이 바로 로지스틱 회귀모델이다. 로지스틱 회귀모델은 새로운 관측치가 왔을 때 이를 기존 범주 중 하나로 예측하는 '분류' 모델이다. 예를 들어 생산된 물건이 불량인지 정상인지, 또는 이 사람이 병에 걸렸는지 안걸렸는지를 분류해주는 모델 등이 있다. 입력변수 X가 주어졌을 때 출력변수 Y가 이진 또는 멀티변수로 표현된다면 이를 그래프 상에 나타내어 의미있는 결과가 도출될 수 없다. 때문에 로지스틱 회귀모델에서 입..
KNN(K-Nearest Neighbor) 알고리즘을 이용해 종양 덩어리에 대한 데이터가 주어졌을 때 이 종양 덩어리가 단순히 양성종양인지 아니면 악성종양인지 판별해주는 머신러닝 모델을 만들어보았다. 개발환경은 구글의 Colab에서 진행하였으며 다음은 전체 코드이다. https://github.com/hizibu7/datascience_practice/blob/master/cancer_%20discrimination GitHub - hizibu7/datascience_practice Contribute to hizibu7/datascience_practice development by creating an account on GitHub. github.com K-최근접 이웃 회귀 알고리즘이란? 우선 코드..
-알고리즘이란? 주어진 문제를 해결하는 한가지 방법을 명료하게 써놓은 것을 알고리즘이라 한다. - 알고리즘의 시간복잡도에 따른 시간 O(N^3) 알고리즘: 크기 2560 이하인 입력을 1초 안에 풀 수 있다. O(N^2) 알고리즘: 크기 40960 이하인 입력을 1초 안에 풀 수 있다. O(NlgN) 알고리즘: 크기 대략 2천만 이하인 입력을 1초 안에 풀 수 있다. O(N) 알고리즘: 크기 대략 1억 6천만 이하인 입력을 1초 안에 풀 수 있다. - P/NP 문제란? P 문제: 다항 시간 알고리즘이 존재하는 문제들의 집합 NP 문제: 답이 주어졌을 때 이것이 정답인지를 다항시간 내에 확인할 수 있는 문제
인터넷에서 내가 찾고자 하는 리뷰를 검색해보면 신뢰할만한 리뷰를 찾을 때도 있지만 멋모르고 광고성 리뷰를 읽게 되는 경우도 적지 않다. 때문에 이번에는 파이썬과 파이어베이스를 이용해 리뷰에 적힌 단어들 중 광고성 리뷰에서 나올법한 단어들이 있는지를 확인하고 이를 바탕으로 그 리뷰의 신뢰도를 판단해주는 파이썬 프로젝트를 진행해봤다. 전체 코드는 다음과 같다. # import : firebase db import firebase_admin from firebase_admin import credentials from firebase_admin import db # import : crowling import urllib.request import urllib.parse from bs4 import Beaut..
현재 비트코인을 향한 열기는 과열된 채 전혀 식을 기미가 보이지 않고 있다. 몇 년 전까지만 해도 '인터넷에서 보니 누가 비트코인으로 얼마를 벌었더라' 처럼 멀게만 느껴졌던 일이 이제는 '친구 누구누구가 저번에 비트코인을 샀다더라' 하는 식으로 점점 저와의 거리감을 줄여만 가고 있는듯 하다 현재 많은 사람들이 비트코인을 비롯한 암호화폐에 지대한 관심을 보이고 있지만 그것은 거의 투자대상으로써의 관심일 뿐 암호화폐에 대해 정확히 알고 있는 사람은 그리 많지 않아보인다. 나 또한 그런 사람들 중 한명이었지만 나름 개발자 꿈나무로써 암호화폐에 대해 공부해보았다. 블록체인이란 실질적으로 암호화폐는 블록체인 기술의 부산물일 뿐 진정한 핵심은 블록체인 기술에 있기 때문에 우리는 우선 블록체인에 대해 알아둘 필요가 ..
이제 본격적으로 미세먼지 크롤러를 제작해보도록 하자. 다음은 전체 코드이다. from selenium import webdriver from bs4 import BeautifulSoup driver = webdriver.Chrome('C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python\crawling\selenium\chromedriver') driver.implicitly_wait(3) driver.get('http://openAPI.seoul.go.kr:8088/(인증키)/xml/RealtimeCityAir/1/25/') raw = driver.page_source html = BeautifulSoup(raw, 'html...
오늘은 Selenium을 사용해서 미세먼지 데이터 크롤러를 만들어보자. OpenAPI 사용하기 우선 미세먼지 데이터를 크롤링해오기 위해서는 당연하게도 미세먼지 현황에 대한 데이터가 필요할 것이고 이러한 데이터는 OpenAPI(누구나 사용할 수 있는 API)를 통해 얻을 수 있다. 필자는 '서울 열린데이터광장'에서 제공하는 '서울시 권역별 실시간 대기환경 현황'이라는 공공데이터를 사용해 크롤러를 제작해보았다. data.seoul.go.kr/dataList/OA-2219/S/1/datasetView.do 서울시 권역별 실시간 대기환경 현황 대기 환경지수, 미세먼지, 오존, 이산화질소, 일산화탄소, 아황산가스 등의 권역별 실시간 대기환경정보를 제공합니다. data.seoul.go.kr 이러한 OpenAPI의 ..
오늘은 파이썬을 사용하여 네이버 e북에서 Top 1~100를 차지하고 있는 책들의 정보를 크롤링한 뒤 카테고리를 카운팅해서 어떤 종류의 책이 인기가 많은지에 대해 살펴보았다. 전체 코드는 다음과 같다. import requests from bs4 import BeautifulSoup dic = {} for page in range(1, 6): print("page ", page) print("") raw = requests.get("https://series.naver.com/ebook/top100List.nhn?page=" + str(page)) html = BeautifulSoup(raw.text, "html.parser") book = html.select("div#content li") for b..