데이터 분석 26

VSCode와 Jupyter Notebook의 차이

최근 들어 Visual Studio Code(VSCode)를 활용해 Python 작업을 하면서 한 가지 의문이 떠올랐다.VSCode에서는 Jupyter Notebook과 같은 .ipynb 파일을 사용할 수 있다.그렇다면 과연 VSCode가 Jupyter Notebook을 완전히 대체할 수 있을까?라는 생각이 들었습니다.대부분의 기능을 사용할 수 있는 VSCode가 아닌 Jupyter Notebook을 사용하는 메리트는 무엇일까..이를 해결하기 위해 이것저것 알아보았다.1. 로컬 개발 환경과 IPython Notebook의 시작책으로 공부를 하던 중, "로컬 개발 환경"이라는 용어가 나왔다.이 용어가 구체적으로 무엇을 의미하는지, 그리고 Jupyter Notebook의 장점은 무엇인지 먼저 정리할 필요가 ..

데이터 분석 2024.12.06

[AI개발자 부트캠프 Elice] Selenium심화, 브라우저 제어

1. 브라우저 제어Q. 브라우저 제어는 왜 해야할까요?로그인 자동화로그인 후에만 나오는 웹 페이지 분석을 위해ID와 비밀번호 입력 후 로그인 버튼 클릭 (또는 엔터키 입력)드랍다운 버튼 클릭드랍다운 버튼을 클릭해야만 나오는 요소의 추출을 위해드랍다운 버튼을 찾아서 클릭→ 답은 Selenium입니다!!  2. 브라우저 로딩 기다리기브라우저 로딩이 지연되는 경우가 있습니다.이럴 때는 어떻게 해야할까요?Point Itime.sleep(n): 무조건 기다리기import timewith webdriver.Firefox() as driver: driver.get(url) # 웹페이지 로딩 time.sleep(10) # 10초간 기다리기 e = driver.find_element() ...

[AI개발자 부트캠프 Elice] 웹 스크래핑과 Selenium

1. 웹 스크래핑과 Selenium웹 스크래핑이란, 웹사이트에서 원하는 데이터를 수집하고 가공하는 행위입니다.Selenium은 웹 테스트 자동화 도구로, 파이썬(또는 자바) 라이브러리로 사용합니다. Selenium은 브라우저를 제어하는 기능이 있어 웹 스크래핑에 용이합니다.  2. 태그 이름으로 요소 찾기Point ISelenium 공통 설정from selenium import webdriverfrom selenium.webdriver.common.by import Bydriver = webdriver.Firefox() # 실행 브라우저driver.get('https://news.naver.com')...driver.quit()해당 프로그램을 수행할 브라우저를 선택하여 실행하며, 다양한 브라우저 (ex...

[AI개발자 부트캠프 Elice] HTML훑어보기

1. 크롤링에 관하여Web Crawler: 수많은 웹사이트를 탐험하며 페이지를 수집하는 시스템으로, Web Spider라고도 합니다.Web Scrapping: 특정 웹 페이지 내용 중 원하는 부분을 내가 원하는 형식으로 만드는 것을 말합니다. 웹 페이지 작성 규칙을 따르며 정리할 수 있습니다.크롤링 기술을 배우기 위한 발판이 스크래핑이고, 스크래핑을 배우기 전에 웹(Web)에 대한 지식이 선행되어야 합니다. 따라서 이번 장에서는 웹의 설계도인 HTML에 대해 학습했습니다.  2. HTML이란?HTML이란 Hyper Text Markup Language의 약자로, 웹사이트에서 눈에 보이는 정보나 특정 구역을 설정할 때 사용하는 언어입니다.Point IHTML의 구성 요소 텍스트 컨텐츠 태그: 요소의 특징을..

[데이터 크롤링] Selenium에서 iframe 다루기: switch_to.frame()을 활용한 효율적인 접근 방법

Selenium에서 iframe 처리할 때, switch_to.frame()을 사용하는 이유웹 페이지를 크롤링하거나 테스트 자동화를 할 때, Selenium은 매우 유용한 도구이다. 하지만 웹 페이지에 iframe이 포함된 경우, Selenium만으로는 해당 iframe 내부의 데이터를 바로 다룰 수 없다. 이럴 때 필요한 것이 바로 switch_to.frame()이다. 이번 글에서는 iframe이 무엇인지, 왜 switch_to.frame()을 사용하는지, 그리고 실제 사용 예시와 함께 그 필요성을 정리해보았다.1. iframe이란?iframe(인라인 프레임)은 한 웹 페이지 안에 다른 HTML 문서를 삽입하는 역할을 한다. 즉, 페이지 내에 독립적인 작은 브라우저 창이 있는 것과 같다. 이를 통해 다..

데이터 분석 2024.10.16

streamlit 기본 기능 연습

streamlit 기본 기능을 연습해보았습니다. import timeimport numpy as npimport pandas as pdimport streamlit as st우선 필요한 라이브러리들을 불러와줍니다. st.title("이것은 타이틀이다.")st.header('1. 이것은 헤더이다.')st.markdown(""" 마크다운으로 문자를 써보았습니다. """) 타이틀과 헤더를 적을때는 st.title(), st.header()를 사용합니다.st.markdown()은 마크다운 문법을 사용해서 글을 적을 수 있네요.   st.code(""" 코드블럭은 코드를 쓰거나, 글자를 강조합니다. from keras.preproces..

데이터 분석 2024.10.06

정규표현식

1. 정규표현식정규 표현식의 의미정규 표현식(Regular Expressions, regex)은 문자열에서 특정 패턴을 찾거나 조작하기 위해 사용되는 문자 시퀀스입니다. 정규 표현식은 복잡한 문자열 검색과 치환 작업을 간단하고 효율적으로 수행할 수 있게 해줍니다.정규 표현식의 활용방법텍스트 검색: 특정 단어나 패턴을 포함하는 텍스트를 찾는 데 사용됩니다.데이터 유효성 검사: 이메일 주소, 전화번호, 우편번호 등의 형식을 검증하는 데 사용됩니다.텍스트 치환: 특정 패턴을 다른 문자열로 바꾸는 데 사용됩니다.데이터 추출: 로그 파일, HTML 문서 등에서 필요한 정보를 추출하는 데 사용됩니다.데이터 정제: 데이터셋에서 불필요한 공백, 특수 문자 등을 제거하는 데 사용됩니다.정규 표현식을 사용하는 이유효율성:..

데이터 분석 2024.10.04

Flask서버로 이미지 전송 및 결과 받기

파이썬의 if __name__ == "__main__": 구문파이썬에서 if __name__ == "__main__": 구문은 스크립트가 직접 실행될 때와 모듈로 임포트될 때의 동작을 구분하기 위해 사용됩니다. 스크립트가 직접 실행될 때 __name__ 변수는 "__main__"으로 설정되며, 모듈로 임포트될 때는 모듈의 이름이 __name__ 변수에 할당됩니다. 이를 통해 스크립트가 직접 실행될 때만 특정 코드가 실행되도록 할 수 있습니다.예시 코드 설명다음은 Flask 서버를 실행하는 예시 코드입니다:from flask import Flask, jsonify, requestimport tensorflow as tfimport PIL.Image as imageapp = Flask(__name__)def..

데이터 분석 2024.10.03

클러스터링(군집화) 타당성 평가

클러스터링은 정답이 없기 때문에 실제값과 예측값의 오차 또는 단순 정확도 지표로 평가할 수 없다.군집 간 거리, 군집의 지름, 군집의 분산을 고려하여 클러스터링 목표 달성 여부를 확인할 수 있다. 대표적인 평가 지표로 Dunn Index, Silhouette 지표가 있다. 1. Dunn Index  \[ \text{Dunn Index} = \frac{\min(\text{inter-cluster distances})}{\max(\text{intra-cluster distances})} \]군집 간 거리의 최소값 / 군집 내 요소 간 거리의 최대값 분자값이 클수록 군집 간 거리가 크고,분모값이 작을수록 군집 내의 데이터들이 모여 있다.해당 지표가 클 수록 높은 성능을 나타낸다. 2. 실루엣(Silhouett..

데이터 분석 2024.09.14

wine 데이터셋을 활용한 혼동행렬 시각화

혼동행렬 시각화를 LLM를 사용해서 공부한 내용을 정리함.전체 코드 중 시각화에 대한 부분만 다루었으며, 전체 코드는 파일로 첨부함. 1. 함수 정의 및 제목 설정:title = ""if normalize: title = 'Normalized confusion matrix'else: title = 'Confusion matrix' 여기서는 normalize 매개변수를 확인하여 행렬을 정규화(normalization)할지 결정합니다. 정규화는 데이터의 범위를 조정하는 것을 말하는데, 여기서는 각 클래스별 예측 비율을 확인하는 용도입니다. 이 부분은 이해하기 쉬운 기초적인 개념이에요. 2. 클래스 이름 추출:classes = classes[unique_labels(y_true, y_pred)] y..

데이터 분석 2024.09.14