Til 23

인공지능의 성능을 좌우하는 데이터 전처리 - 결측치 탐지 및 처리 방법

데이터 전처리는 인공지능과 데이터 분석 프로젝트의 핵심 단계로, 데이터를 정제하고 구조화하여 모델링에 적합한 고품질 데이터로 만드는 과정이다. 잘못된 데이터 처리나 전처리의 부재는 데이터의 불안정성과 부정확성을 초래해 모델 성능을 저하시킬 수 있다. 대부분의 실제 데이터는 결측값, 이상치, 중복 등의 문제를 포함하고 있어 이를 해결하지 않으면 인공지능의 학습에 부정적 영향을 미쳐 예측 성능을 크게 떨어뜨리게 된다. 데이터 전처리는 결국 모델의 성능을 좌우하며, 인공지능의 성공적인 활용을 위해 반드시 필요한 작업이다. 이러한 데이터 전처리에는 여러 가지 방법이 있으며, 오늘은 그 중에서 결측치를 처리하는 방법에 대해 알아보고자 한다.  1. 결측치 탐지결측치 : 데이터가 누락되거나 기록되지 못한 상황으로 ..

TIL/Python 2024.11.29

Python Library - Pandas를 통해 데이터를 변형하기(데이터 정렬 및 병합)

Pandas는 데이터에 대한 다양한 기능을 제공한다.오늘은 그 중에 데이터를 정렬하고 병합하는 기능에 대해 살펴보고자 한다.또한 다양한 데이터프레임을 결합해서 원하는 새로운 데이터프레임을 만들어보자.  데이터 분석의 기본. 데이터 정렬- sort_values()를 사용해서 값(value)을 기준으로 정렬하기import pandas as pd# 데이터프레임 생성data = { '이름': ['철수', '영희', '민수', '지수'], '나이': [25, 30, 22, 35], '직업': ['학생', '회사원', '학생', '프리랜서']}df = pd.DataFrame(data)print(df)""" 이름 나이 직업0 철수 25 학생1 영희 30 회사원2 민수 2..

TIL/Python 2024.11.28

Python Library - Pandas를 이용한 데이터를 불러오고 저장하기

판다스는 데이터를 처리하기 위한 패키지이다.이러한 데이터 처리를 위해 어떻게 파일을 불러오고 다시 저장하는지,원하는 데이터를 선택하려면 어떤 방법이 있는지에 대해 알아보도록 하자. - 판다스를 이용한 다양한 형식의 파일 불러오기# CSV 파일 불러오기df_csv = pd.read_csv('data.csv')# URL에서 CSV 파일 불러오기url = "https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv"df_csv_2 = pd.read_csv(url)# Excel 파일 불러오기df_excel = pd.read_excel('data.xlsx')# Excel 특정 시트 데이터 불러오기df_excel = pd.read_ex..

TIL/Python 2024.11.27

Python Library - Numpy와 ndarray

- Numpy(Numerical Python) : 과학 계산에 강력한 성능을 제공하는 파이썬 라이브러리다차원 배열 객체인 ndarray와 배열을 처리할 수 있는 다양한 함수를 제공데이터 분석, 머신러닝, 딥러닝에서 기초가 되는 라이브러리이며, 판다스와 같이 자주 사용됨 먼저 리스트에서 요소를 연산하는 것과, 넘파이를 사용해 배열 전체에 연산하는 것이 어떻게 다른지 알아보자. - 리스트 각 요소에 연산하기sample_list = [1, 2, 3, 4, 5]for i, v in enumerate(sample_list): sample_list[i] = v + 10 sample_list # [11, 12, 13, 14, 15]  - 넘파이를 사용해 배열을 생성하고 배열 전체에 연산하기import nu..

TIL/Python 2024.11.26

Python Library - Pandas

오늘부로 새로이 본 캠프가 다시 시작되었고, 또 새로운 조가 구성되었다. 조원들과 같이 새로운 주제인 파이썬 라이브러리에 관련된 강의를 시작하게 되었고, 아직 기본 파이썬 강의도 소화가 안된 것 같지만, 일단 나중에 생각하고 새로운 파이썬 라이브러리에 대한 강의를 듣고 내용을 정리하려고 한다.   판다스(Pandas) : 데이터 분석 라이브러리데이터 처리 뿐만 아니라 정리 및 분석을 자동으로 해주는 도구 - 대표하는 2가지 자료 구조1. 데이터프레임 : 행과 열로 구성된 2차원 데이터 구조로, 판다스의 핵심 자료 구조2. 시리즈 : 단일 열로 구성된 1차원 데이터 구조. 데이터 프레임 구성 요소 중 하나 - 판다스의 활용 분야 : 데이터 처리가 필요한 모든 분야에 활용됨ex)1. 데이터 분석2. 데이터 ..

TIL/Python 2024.11.25

241122 인공지능을 위한 파이썬 - 5주차

프레임워크와 라이브러리- 프레임워크 : 애플리케이션 개발의 기본 구조와 흐름을 제공하는 틀이미 기본 구조가 짜여져 있음. 일정한 방식에 따라 코드 작성이 강제됨- 라이브러리 : 모듈이나 함수들의 집합, 개발자가 필요에 따라 호출해서 사용 - 프레임워크의 특징1. 제어의 역전 : 프레임워크가 애플리케이션 흐름을 주도. 개발자는 요구하는 방식으로 코드 작성2. 일관성 : 일정한 패턴을 따르므로, 유지보수 용이함 - 프레임워크와 라이브러리의 차이1. 제어 흐름라이브러리 : 개발자가 흐름 제어프레임워크 : 프레임워크가 흐름 제어2. 코드 작성 방식라이브러리 : 원하는 기능만 선택적으로 사용프레임워크 : 일정한 구조와 규칙에 따라 코드를 작성비유로 이해하기라이브러리 : 여러 도구가 준비된 도구 상자프레임워크 : ..

TIL/Python 2024.11.22

241122 SQL 스터디

오늘 조원들과 SQL 쿼리 작성 문제 중 몇 가지 케이스를 가지고 스터디를 진행했고,새로 배우거나 중요한 내용을 다시 정리할 겸 작성하게 되었다. 날짜 간의 차이를 구할 때 datediff 함수 외에도 timestampdiff나 date_sub 사용이 가능하다. - DATEDIFF() : 간단한 일(day) 차이를 계산해주는 함수datediff(날짜1, 날짜2)  - TIMESTAMPDIFF() : 날짜간의 차이를 지정한 단위로 계산해주는 함수timestampdiff(단위, 날짜1, 날짜2) - 단위 예시SECOND : 초MINUTE : 분HOUR : 시DAY : 일WEEK : 주MONTH : 월QUARTER : 분기YEAR : 연 - DATE_SUB() : 기준 날짜에서 interval 뒤의 값만큼 해..

TIL/SQL 2024.11.22

241122 인공지능을 위한 파이썬 - 4주차_3

이터레이터와 반복 가능한 객체 - 반복 가능한 객체(Iterable) : 하나씩 차례대로 값을 꺼내올 수 있는 객체리스트, 튜플, 문자열, 딕셔너리 등은 모두 반복 가능한 객체for 루프를 통해 반복, 내부적으로는 __iter__() 메서드를 통해 이터레이터 반환numbers = [1, 2, 3, 4, 5]for num in numbers: print(num)  - 이터레이터(Iterator) : 반복 가능한 객체의 요소를 하나씩 꺼내오는 객체numbers = [1, 2, 3, 4, 5]iterator = iter(numbers) # 리스트로부터 이터레이터 생성next(iterator) # 1 / 이터레이터의 각 요소를 하나씩 꺼내기next(iterator) # 2next(iterator) # 3n..

TIL/Python 2024.11.22

241122 인공지능을 위한 파이썬 - 4주차_2

파이썬에서 파일 다루기- open() 함수 : 파일을 열고, 파일 객체를 반환f = open("파일이름", "모드")# 파일 모드의 종류# "r" : 읽기 모드(기본값)# "w" : 쓰기 모드 / 파일이 존재하지 않으면 새로 만들고, 존재하면 내용 덮어씀# "a" : 추가 모드 / 파일 끝에 데이터 추가# "b" : 바이너리 모드 / 이진 파일을 읽거나 쓸 때 사용, "rb", "wb" 모드와 함께 사용됨 - close() 함수 : 파일 처리가 끝난 후 닫을 때 사용파일을 닫지 않으면, 데이터 손실이나 파일 잠금과 같은 문제가 발생할 수 있으므로 주의 요망f = open("example.txt", "r") # 읽기 모드로 파일 열기# 파일 처리 작업 수행f.close() # 파일 닫기 - read()..

TIL/Python 2024.11.22

241121 인공지능을 위한 파이썬 - 4주차_1

초기의 프로그래밍은 절차를 지향절차에 따라 명령을 순서대로 실행단순한 문제나 수식적 해결에 용이하며 관리하기가 편함 그러나, 점점 프로그램이 커지고 컴퓨터의 성능 발달에 따라 해결하고자 하는 문제도 커지고 복잡해짐 이런 문제점을 해결하기 위해 객체 지향 프로그래밍이 등장프로그램을 객체라는 독립적인 단위로 작성하기 시작  객체 지향 프로그래밍의 핵심인 클래스와 객체 이해하기 - 클래스 : 객체를 만들기 위한 설계도클래스는 속성(객체의 데이터)과 메서드(객체의 동작)로 구성 - 객체 : 클래스라는 설계도로부터 생성된 구체적인 데이터와 기능을 가지는 실체 - 객체 지향 프로그래밍(Object-Oriented Programming, OPP)의 핵심 개념클래스와 객체를 사용해 프로그램을 설계하고 구현하는 방식 -..

TIL/Python 2024.11.21