반응형

공부 47

[ 머신러닝 프로그램 ] k-최근접 이웃 분류 알고리즘 ver2 - 테스트 세트 추가

버전 1의 머신러닝 프로그램은 훈련 데이터 세트와 테스트 데이터 세트가 다르지 않았다. 이는 시험 보기전 답을 다 알려준 상태라고 볼 수 있다..! 테스트 세트 설정 보통은 훈련 데이터 세트에서 일부를 테스트 데이터로 활용한다. 근데 여기서 주의할 점은 훈련데이터에 한 종류의 데이터만 편향되면 안된다는 것이다. 전에 했던 데이터들을 다시 떠올려보면 도미가 35개 빙어가 14개 있었다. 여기서 도미 35개를 훈련세트로 하고 빙어 14개를 테스트세트로 하면 정확도는 0이 나올 것이다. 이를 샘플링 편향이라고 한다. 이를 방지하려면 훈련세트와 테스트세트를 잘 섞어줘야한다. 넘파이라는 라이브러리를 사용하면 이러한 작업을 편리하게 할 수 있다. 넘파이의 함수들을 사용하려면 리스트들을 넘파이배열로 바꿔줘야한다. 그..

공부/머신러닝 2023.02.11

[ TCP/IP ] 애플리케이션층

애플리케이션층 애플리케이션 픙은 TCP/IP의 5계층 중에서 가장 위에 위치한다. 컴퓨터끼리 주고받는 것들은 사용자가 이용할 수 있는 통신서비스로 만드는 역할을한다. 애플리케이션층에서는 통신서비스를 실현하기 때문에 송수신측이라는 말보다는 클라이언트와 서버의 개념을 갖는다. 어플리케이션층에서의 프로토콜은 어떻게 하면 효율적일까를 고려하여 만들어졌다. 에플리케이션 헤더 에플리케이션 층에서 추가되는 헤더를 애플리케이션 헤더라고 한다. 여기에는 '요청과 응답'에 관한 정보가 들어있다. 아래층으로 가면 데이터가 하나로 묶여버리기 때문에 애플리케이션층끼리만 해석할 수 있다. 프로토콜에 따라 텍스트 기반(영어, 숫자)으로 작성되기도 하고, 바이너리 기반으로 작성되기도 한다. 클라이언트가 서버에 서비스를 요청할 때는 ..

공부/TCP IP 2023.02.11

[ 머신러닝 프로그램 ] k-최근접 이웃 분류 알고리즘 ver1

생선 도미와 빙어를 구분하는 머신러닝을 만들어보자! 산점도 그리기 생선 도미의 데이터를 가져와서 산점도로 확인해보자! 파이썬에서 과학계산용 그래프를 그리는 대표적인 패키지는 matplotlib이다. matplotlib 안에 산점도를 그리는 함수 scatter()함수를 이용하여 도미의 길이와 무게에 대한 산점도를 그려보자! import matplotlib.pyplot as plt #도미의 정보 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,..

공부/머신러닝 2023.02.10

[ TCP/IP ] 통신 서비스와 프로토콜

서버와 클라이언트 서비스를 제공하는 측을 서버, 서비스를 받는 측을 클라이언트라고한다. 이 둘이 통신하는 과정은 아래와 같다. 클라이언트가 받고싶은 서비스를 주문한다. 서비스를 담당하는 서버에게 클라이언트의 요청을 전달한다. 클라이언트의 주문대로 서비스를 제공한다. URL 네트워크 상에 있는 특정 데이터 등을 표시할 때 사용하는 것이 URL이다. URL은 스킴명, 도메인, 포트번호(생략가능), 경로, 파일명으로 이루어져있다. 스킴명은 아래과 같은 종류가 있다. http - WWW 웹서비스 ftp - 파일전송 mailto - 전자메일 telnet - 원격 로그인 URL안의 도메인을 좀더 알아보자. 도메인은 ccTLD와 gTLD 두가지 종류가 있다. ccTLD는 서버명, 조직명, 조직속성, 국가코드로 이루어..

공부/TCP IP 2023.02.09

[ spring ] 예제 - 회원관리 : 스프링DB 접근기술

서버를 껐다 켜도 데이터들이 저장되기 위해서는 데이터베이스를 활용해야한다. 먼저 가장 간단한 H2데이터베이스를 활용해보자 실무에서는 mySQL이나 오라클을 많이 사용한다. H2는 교육용으로 사용하기 좋은 가벼운 프로그램이다. 1. H2 데이터베이스 설치 나는 1.4.200 의 window버전을 다운받았다! 모두다 다운을 받고 consol를 실행시켜 보면 아래와 같은 화면이 뜬다! 경로를 잘 확인하고 >>연결

[ 운영체제 ] 교착상태

1. 교착상태 1.1 식사하는 철학자 문제 식사하는 철학자 문제는 교착상태를 설명하는 아주 유명한 문제이다. 동그란 원탁에 다섯명의 철학자가 앉아 있다. 앞에는 음식이 놓여있고 음식은 포크가 두개 있어야 먹을 수 있다. 철학자는 왼쪽포크를 집고 오른쪽 포크를 집고 두개를 집어서 일정시간 식사를 한다. 다먹으면 오른쪽을 내려놓고 왼쪽을 내려놓는다. 이때, 모든 철학자가 동시에 왼쪽 포크를 집으면 아무도 식사할 수 없다. 모두 오른쪽 포크가 생기기를 기다리기만 할 것이다. 하지만 오른쪽 포크는 영영 생기지 않는다. 이렇게 일어나지 않을 사건을 기다리며 진행이 멈춰버리는 현상을 교착상태라고 한다. 일명 deadlock!! 교착상태는 다양한 상황에서 발생한다. 예를 들어 뮤텍스락에서 프로세스A는 lock1를 잠..

공부/운영체제 2023.02.08

[ 운영체제 ] 프로세스 동기화

1. 동기화 1.1 동기화의 의미 동시에 실행되는 많은 프로세스들은 데이터를 주고받으며 실행될 수 있다. 이때의 올바른 실행을 위해서는 동기화가 필요하다. 프로세스 세계에서 동기화란 올바른 순서대로 실행되고 한 자원에 동시에 접근하지 않는 것이다. 특정 조건이 완료되어야 실행을 이어나가는 프로세스들이 있기 때문에 프로세스에서의 실행순서는 중요하다. 또, 한 프로세스가 연산을 다 끝내기 전에 접근해서 다른 연산을 하면 연산이 꼬여서 원하는 결과가 나오지 않을 수 있다. 1.2 생산자와 소비자 문제 왜 한 자원에 동시에 접근하지 않는 것이 중요한지 더 알아보자. 생산자와 소비자는 '총합' 이라는 데이터를 공유한다고 해보자. 생산자는 버퍼에 데이터를 넣고 총합을 1 증가 시키고, 소비자는 버퍼에서 물건을 빼고..

공부/운영체제 2023.02.08

[ TCP/IP ] TCP/IP 개요

통신 프로토콜 컴퓨터끼리 데이터를 주고 받을 떄는 기종이나 통신방식과 같은 차이가 문제가 된다. 따라서 송신측과 수신측은 정해진 매뉴얼에 따라 보내야한다. 이 매뉴얼을 프로토콜이라고한다. TCP/IP 만약 전 세계적으로 공통된 통신 프로토콜이 있다면 아주 편할 것이다. 그래서 현재 전 세계 공통 통신 프로토콜로 채택된 것이 TCP/IP이다. 데이터를 주고받는데는 여러개의 프로토콜이 필요하기 때문에 TCP/IP에는 여러 프로토콜이 들어있다. 5계층 TCP/IP에서는 송수신과 관련된 작업들을 몇 개의 단계로 나눠서 수행한다. 이 단계를 layer, 층 이라고 한다. 계층이 나뉘면 각 계층은 독립적으로 자신의 할일만 하면된다. 각 층에는 다양한 프로토콜이 존재한다. 애플리케이션 층 : HTTP, SMTP, T..

공부/TCP IP 2023.02.06

[ 컴퓨터구조 ] 메모리와 캐시메모리

1. RAM의 특징과 종류 1.1 RAM의 특징 RAM은 전원을 끄면 내용이 사라지는 휘발성 저장장치이다. RAM에는 보통 실행할 대상을 저장한다. CPU는 실행하고 싶은 프로그램이 있다면 RAM으로 복사하여 저장한 뒤 실행한다. 1.2 RAM의 용량과 성능 RAM이 작다면 실행할 프로그램이 있을때마다 복사하여 저장해야하지만 RAM의 용량이 크다면 여러개의 프로그램을 저장해놓고 사용할 수 있다. 하지만 RAM이 큰수록 무한으로 성능이 좋아지는것은 아니다. 1.3 RAM의 종류 DRAM DRAM는 Dynamic RAM 의 준말이다. 이는 저장된 데이터가 동적으로 변하는 RAM을 의미한다. DRAM은 시간이 지나면 데이터가 사라지기 때문에 소멸을 막으려면 일정 주기로 데이터를 다시 저장해야한다. 우리가 일반..

[ 컴퓨터구조 ] CPU 성능 향상 기법

1. 빠른 CPU를 위한 설계 기법 1.1 클럭 컴퓨터 부품들은 클럭신호에 맞춰 움직인다. 그렇기 때문에 클럭 속도가 높은 CPU는 일반적으로 성능이 좋다. 클럭 속도는 헤르츠(Hz) 단위로 측정한다. 이는 1초에 클럭이 몇 번 반복되는지를 나타난다. 보통 클록의 속도는 일정하지 않고 고성능리 필요할 때는 클럭속도를 높이고 그렇지 않을 때는 유연하게 속도를 낮춘다. 1.2 코어와 멀티코어 클럭속도를 아무리 올려도 CPU의 성능을 올리기엔 한계가 있다. 이에 대한 해결방법으로 CPU의 코어와 스레드 수를 늘리는 방법이 있다. 지금까지는 한 CPU에 1코어만 있다고 생각했지만, 요즘에는 '명령어를 실행하는 부품'을 코어라고 부르고 CPU에는 이 코어가 여러개 있기도하다. 이렇게 코어를 여러개 포함하고 있는 ..

반응형