인공지능 AI 32

파이썬python numpy array flatten(), reshape(-1) 단일 리스트로 만들 때, 다중 리스트에서 리스트 모양이 다를 경우 제대로 작동하지 않는다

이중 리스트를 단일 배열 또는 단일 리스트로 만들고 싶다. flatten() 이중 리스트 안의 개수가 같은 경우 import numpy as np data = [[1, 2], [3, 4]] data = np.array(data).flatten() print(data) 출력 결과 [1 2 3 4] flatten() 이중 리스트 안의 개수가 다른 경우 import numpy as np data = [[1, 2], [3]] data = np.array(data).flatten() print(data) 출력 결과 [list([1, 2]) list([3])] 위와 다른 결과인 것을 확인할 수 있다. flatten() 삼중 리스트 안의 개수가 같은 경우 import numpy as np data = [[[1, 2]..

Q. AIHub 데이터 라이센스는 어떻게 될까?

A. 재배포 불가, 승인 얻은 연구자는 자유롭게 이용 변경 가능하다. AIHub에서 데이터를 신청할 때 다음과 같은 화면이 나타난다. 서약서 본 AI데이터를 이용함에 있어 다음과 같은 사항을 준수해야 함을 고지하오니 동의하여 주시기 바랍니다. 1. AI데이터 등은 권리자로 한국지능정보사회진흥원을 명시할 경우 자유로운 이용 및 변경이 가능하며 2차적 저작물에도 동일하게 출처를 명시하여야 한다. 2. 제공받은 AI데이터 등에 대하여 승인을 얻은 연구자가 아닌 제 3자에게 열람하게 하거나 제공, 양도, 대여, 판매하지 아니한다. 3. AI데이터 등에 기반한 제품·서비스 개발 또는 기술연구에 활용할 때에는 논문 등 결과물에 출처가 한국지능정보사회진흥원임을 반드시 명시 하여야 한다. 4. AI데이터 등의 이용 및..

인공지능 AI 2021.02.14

Q. 왜 기계 학습, 머신 러닝Machine Learning이라고 할까? 진짜로 러닝, 학습하는 걸까?

A. 진짜 인간의 학습과 아주 비슷하다. 우리가 어떤 새로운 것, 구구단, 새로운 단어를 배울 때처럼 기계도 학습을 한다. 구구단을 배울 때를 생각해보자. 다들 어릴 때라 생각이 안 나겠지만, 그때를 떠올려보거나 아이가 있다면 아이가 학습하는 과정을 생각해보자. 9 × 9 = 90 → 땡 9 × 9 = 70 → 땡 9 × 9 = 85 → 땡 9 × 9 = 78 → 땡 9 × 9 = 79 → 땡 9 × 9 = 81 → 정답! 이런 과정을 거쳐서 덧셈, 뺄셈, 곱셈, 나눗셈 등을 익혔다. 처음 구구단을 배울 때는 정말 어려웠고, 틀리는 경우가 많았지만, 계속 학습 → 결과 추론 → 결과 확인 → 다시 학습 과정을 반복하면서 오차를 줄여가며 정답에 이르게 된다. 나중에는 정답이 100%가 된다. 아이를 키워보..

인공지능 AI 2021.02.12

파이썬 requests와 BeautifulSoup을 이용 웹크롤링 예제

requests와 BeautifulSoup일 이용한 웹크롤링 requests를 이용하면 셀레늄selenium을 이용한 경우보다 훨씬 빠르게 정보를 수집할 수 있다. 웹페이지가 ajax를 활용해서 정보를 한번에 불러오는 게 아니라, 스크롤 등 사용자의 행동에 반응해서 추가로 정보를 불러온다면 requests를 활용해서 수집이 어렵다. 이 경우 셀레늄을 쓰거나 둘을 섞어서 써야 한다. 코드 예 import requests from bs4 import BeautifulSoup import unicodedata # 서울시 뉴스 url = 'https://mediahub.seoul.go.kr/archives/2000338' html = requests.get(url) html_text = html.text sou..

머신러닝에서 추천 - 협업 필터링(Collaborative Filtering)이란? 콘텐츠 기반 필터링(Content-Based Filtering)과 가장 큰 차이점은?

머신러닝Machine Learning에서 추천Recommendation 추천은 머신러닝의 한 분야다. 추천 관련 대표적 기술인 협업 필터링(Collaborative Filtering)과 콘텐츠 기반 필터링(Content-Based Filtering) 둘 모두 거르기란 뜻의 filtering이란 단어가 붙어 있다. 어떻게 보면 당연하다. 추천이란 것은 결국 수많은 것들 중 일부를 골라서 제안하는 것이니까. 협업 필터링(Collaborative Filtering)이란? 구글 개발자 머신러닝 코스 중 추천 부분을 보면 아래처럼 설명이 나온다. To address some of the limitations of content-based filtering, collaborative filtering uses si..

파이썬 셀레늄selenium을 활용한 웹크롤링 예

셀레늄은 시간이 오래 걸린다. 브라우저를 띄워서 버튼을 눌러가면서 진행하기 때문이다. 만약 인터넷 환경이 느려서 버튼 이미지가 늦게 뜰 경우에는 너무 빨리 버튼을 누르면 에러가 난다. 이 경우 좀 간격을 두고 진행해야 해서 많은 시간이 필요하다. 웹크롤링 코드 예 쿠팡에서 어떤 한 상품의 리뷰를 쓴 사용자명과 그들이 쓴 평점을 수집하는 코드 예 크롬드라이버 내려 받기 아래 코드는 맥 기준이다. 윈도우의 경우 파일 경로 설정을 다르게 해줘야 할 수 있다. # 라이브러리 불러오기 import pandas as pd from selenium import webdriver import time import math # 초기 설정 # 블루베리 시나몬 플렉스 시리얼 url = "https://www.coupang...

판다스pandas 정렬과 질의query 예제

입력값 import pandas as pd data_list = [] data = {} data['name'] = '이서연' data['gender'] = 'F' data['age'] = 31 data_list.append(data) data = {} data['name'] = '김민준' data['gender'] = 'M' data['age'] = 38 data_list.append(data) data = {} data['name'] = '박지우' data['gender'] = 'M' data['age'] = 45 data_list.append(data) data = {} data['name'] = '윤지민' data['gender'] = 'F' data['age'] = 23 data_list.appe..

Jupyter Notebook 주피터 노트북 단축키shortcuts 정리

주피터 노트북 단축키를 알면 훨씬 편하게 쓸 수 있다. 주피터 노트북은 파이썬python 개발을 할 때 많이 쓴다. 기본 단축키 tap: 파이썬 들여쓰기를 하니 tap을 많이 쓰게 된다. shift + tap: 들여쓰기 반대인 내어쓰기다. tap 크기만큼 앞으로 내어쓰기 된다. 영역을 지정해서 shit+tap을 누르면 한꺼번에 된다. alt + 방향키: alt키를 누르고 있는 상태에서 방향키를 움직이면 띄어쓰기 기준으로 한 단어씩 움직인다. ctrl + 방향키: ctrl키 누르고 있는 상태에서 방향키를 움직이면 한 줄 단위로 커서가 움직인다. home키와 end키와 같다. home키와 end키보다는 이 키를 더 많이 쓴다. shift + 방향키: shift를 누르고 있는 상태에서 방향키를 움직이면 한 글..

Jupyter Notebook 주피터 노트북이란?

Jupyter Notebook 주피터 노트북이란? 공식사이트 설명은 아래와 같다. The notebook extends the console-based approach to interactive computing in a qualitatively new direction, providing a web-based application suitable for capturing the whole computation process: developing, documenting, and executing code, as well as communicating the results. The Jupyter notebook combines two components: A web application: a browser..

파이썬 웹크롤링시 주의사항, 되도록 딕셔너리dictionary를 쓰는 게 좋다

그냥 리스트로 하면 되는 거 아닌가? 처음에는 그냥 리스트로 했다. 누락이 없다면? 잘 작동한다 user_list = [] user_list.append('April') user_list.append('Brad') review_list = [] review_list.append('good') review_list.append('So good!') import pandas as pd df = pd.DataFrame({'user' : user_list, 'review' : review_list}) print(df) 잘 작동한다. 누락이 있다면? 오류가 발생한다. user_list = [] user_list.append('April') user_list.append('Brad') review_list = []..

Google Codelabs에서 개발 공부하기

Google Codelabs란?(출처: 코드랩 소개)Google Developers Codelabs provide a guided, tutorial, hands-on coding experience. 구글 개발자 코드랩은 안내된, 개별 지도의, 실제 코딩 경험을 제공한다.Most codelabs will step you through the process of building a small application, or adding a new feature to an existing application.대부분 코드랩은 작은 애플리케이션을 만들거나 기존에 있는 애플리케이션에 새로운 기능 추가하는 것을 통해서 당신을 한발자국 걷게 한다.They cover a wide range of topics such a..

인공지능 AI 2020.10.12

data.go.kr 공공데이터포털, 국토교통부_아파트매매 실거래 상세 자료, 아파트 전월세 자료 오류 데이터

빅데이터 연습삼아 자료를 받아보고 있는데, 이상한 데이터가 있었다. 왜 이런 자료가 발생한지는 모르겠다. 아파트매매 실거래 상세 자료 건축년도가 없는 경우 예 5,500 2008 00 0 조치원읍 교리 0026 0003 36110 25024 1 (26-3) 7 18 36110-187 66.68 26-3 36110 4 층 값이 없는 경우 예 13,600 1995 2006 정자일로 00046 00000 41135 02 0 3180021 금곡동 0180 0000 41135 11100 1 청솔마을(유천) 5 8 41135-157 40.5 180 41135 아파트 전월세 자료 층 값이 없는 경우 예 1992 2019 수내동 64,000 양지마을(5단지)(한양515-529) 6 0 29 84.9 24 41135 1..