티스토리챌린지 7

사이킷런 KNN모델로 데이터 분류하기

# 도미 데이터 준비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, 41.0]bream_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0,                 500.0, 340.0, ..

비선형 데이터 분류(XORgate)

많은 실생활 데이터는 선형분류기로 분류가 되지 않는 문제점이 있었고,비선형 데이터를 처리하기 위한 분류기의 필요성으로 XORgate가 논의되었다.당시에는 XORgate같은 비선형 데이터를 처리할 수 없었고, 이는 인공지능의 1차 빙하기를 야기한다.   비선형적 문제의 해결을 위해 '단층 퍼셉트론'이 아닌,단층 퍼셉트론을 쌓은 '다층 퍼셉트론'을 사용하게 되었다.(NANDgate와 ORgate의 선형분류기를 사용. 위 그림 오른쪽) 간단한 퍼셉트론 여러개를 연결하면 복잡한 퍼셉트론을 만들 수 있다.여기서 입력층과 출력층 사이에 숨겨진 레이어를 HiddenLayer라고 하고,일반적으로 히든층이 많아질 수록 모델의 복잡도가 올라간다.  아래는 파이썬으로 구현한 XORgate이다.import numpy as n..

딥러닝 2024.11.20

퍼셉트론 선형분류기

퍼셉트론 선형분류기- 사람의 신경계가 '뉴런-신경망-지능'을 이루듯이, 딥러닝에서도 '퍼셉트론-인공신경망-인공지능'을 이룬다.  'AND gate, OR gate, NAND gate, NOR gate'는 선형 분류기로 구현 가능하다.이를 선형 분류를 위하여 퍼셉트론 하나를 사용했다고 하여 '단층 퍼셉트론'이라고 한다. [1] AND Gate: C = activation(1*A + 1*B - 1.5)[2] OR gate : C = activation(1*A + 1*B - 0.4)[3] NAND gate : C = activation(-1*A - 1*B + 1.3)[4] NOR gate : C = activation(-1*A - 1*B + 0.8) 이를 통해 0,1 데이터를 계산하던 논리 회로에서 확장하여 ..

딥러닝 2024.11.19

인공신경망과 퍼셉트론

딥러닝은 머신러닝의 여러 방법론 중 하나이다.딥러닝은 인공신경망에 기반하여 컴퓨터에게 사람의 사고방식을 가르치는 방법이다.   인공신경망: 생물학의 신경망에서 영감을 얻은 학습 알고리즘. 사람의 신경 시스템을 모방함.인공 신경망으로 할 수 있는 분석은 크게 세 가지로 '회귀 분석 / 분류 / 패턴 파악'이 되겠다.인공 신경망을 이용한 딥러닝 모델은 모델 스스로 데이터의 특성을 학습하며, 지도 학습, 비지도 학습 모두에 적용 가능하다.현재 대표적인 딥러닝 기술 적용사례로는 '얼굴 인식 카메라, 기계 번역 모델, 알파고 등'이 있다.   인공 신경망 이전의 연구들로는 '얼굴 인식(눈 코 입 등을 인식), 숫자 인식 등'이 있는데, 이런 것들은 모두 '명시적 프로그래밍'을 사용하였다.명시적 프로그래밍은 한계가..

딥러닝 2024.11.18

서브쿼리(스칼라 서브쿼리, 인라인 뷰, 중첩 서브쿼리)

서브쿼리는 쿼리 안에 또 다른 쿼리를 포함한 구조를 말합니다. 이 서브쿼리를 스칼라 서브쿼리, 인라인 뷰, 중첩 서브쿼리로 구분하는 이유는, 각각의 서브쿼리가 실행되는 방식과 결과가 다르기 때문입니다.1. 스칼라 서브쿼리 (Scalar Subquery)정의:하나의 값(단일 스칼라 값)을 반환하는 서브쿼리.주로 SELECT 목록이나 WHERE 절 등에서 단일 값이 필요한 곳에 사용됩니다.특징:서브쿼리 실행 결과가 항상 하나의 값이어야 합니다.결과가 여러 행이나 값이 없으면 오류가 발생하거나 NULL로 처리됩니다.예시SELECT EMPNO, ENAME, SAL, (SELECT AVG(SAL) FROM EMP) AS AVG_SALFROM EMP;설명:(SELECT AVG(SAL) FROM EMP)는..

SQL 2024.11.17

절차적언어와 비절차적언어

절차적 언어와 비절차적 언어의 차이SQL과 DBMS에서 사용하는 언어는 절차적 언어와 비절차적 언어로 나눌 수 있습니다. 이 두 언어는 데이터 처리 방식과 설계 철학에서 차이가 있으며, 각각의 장점과 용도가 다릅니다. 다음은 주요 특징과 예시입니다.1. 비절차적 언어 (Non-Procedural Language)정의사용자가 "무엇을 할 것인가?"만 기술하며, "어떻게 처리할지"는 DBMS가 자동으로 결정하는 언어입니다.데이터 검색과 조작에 필요한 결과를 간단히 표현할 수 있어 직관적이고 생산성이 높습니다.특징사용자는 데이터 처리 절차를 고려하지 않아도 됩니다.DBMS가 최적의 실행 계획(Execution Plan)을 자동으로 생성해 데이터를 처리합니다.일반적으로 SQL과 같은 언어가 비절차적 언어에 해당..

SQL 2024.11.16

MOD함수와 %

SQL에서는 나머지 연산을 수행할 때 MOD 함수와 % 연산자를 사용할 수 있습니다. 하지만 이 두 방식은 사용되는 DBMS와 문법에서 차이가 있기 때문에 적절히 사용해야 합니다. 오늘은 MOD 함수와 % 연산자의 차이점과 사용법을 간단히 정리해보겠습니다.1. MOD 함수란?MOD는 Modulus(나머지)를 의미하며, 표준 SQL에서 제공하는 함수입니다. 이 함수는 피제수(나누어지는 수)와 제수(나누는 수)를 받아 나머지를 반환합니다.사용법:MOD(피제수, 제수)예시 (Oracle, PostgreSQL 등에서 사용 가능):SELECT MOD(10, 3) AS 나머지 FROM DUAL;결과: 1 (10 ÷ 3의 나머지)2. % 연산자란?%는 SQL Server에서만 사용 가능한 연산자로, 피제수와 제수의 ..

SQL 2024.11.15