목록프로그래밍언어 (16)
Dev log
파이썬에서 특정 단어가 있는지 확인하기 위해 자주 쓰이는 함수 in입니다. 아마 for 사용할때 더 많이 사용해본 적 있을꺼예요. 이 맴버 함수에 대해 자세히 알아보겠습니다. list안에 있는지 없는지 확인하기 in을 사용하여 list안에 특정 숫자나 문자열이 있는지 체크해보겠습니다. listdata =[1, 2, 3, 4] ret1 = 5 in listdata # False ret2 = 4 in listdata # True print(ret1); print(ret2) strdata = 'abcde' ret3 = 'c' in strdata # True ret4 = '1' in strdata # False print(ret3); print(ret4) 텍스트(.txt)에서 특정 단어 및 라인 출력하기 겨울왕..
지역변수와 전역 변수 변수는 자신이 생성된 범위(코드 블록) 안에서만 유효합니다. 함수안에서 만든 변수는 함수 안에서만 살아 있다가 함수 코드의 실행이 종료되면 그 생명을 다합니다. 이것을 지역변수라고 합니다. 이와는 반대로 함수 외부에서 만든 변수는 프로그램이 살아 있는 동안에 함께 살아 있다가 프로그램이 종료가 되면 같이 소멸합니다. 이렇게 프로그램 전체를 유효범위로 가지는 변수를 전역 변수라고 합니다. param = 10 strdata = '전역변수' def func1(): strdata = '지역변수' print(strdata) def func2(param): param = 1 def func3(): global param # global 을 사용하면 지역변수를 전역변수처럼 사용하겠다. 라는 뜻 ..
정수형(integer)이란 말 그대로 정수를 뜻하는 자료형을 말합니다. a = 123 b = -123 c = 0 일반 프로그래밍에서 지원하는 정수형 상수의 범위는 -214747367 ~ 2147483647인데 파이썬은 메모리가 허용하는 범위내에서 지원 가능한 수를 사용할 수 있습니다. 2진수, 8진수, 16진수를 사용하는 이유 1. 컴퓨터가 2진수를 사용하는 이유는 무엇일까요 ? 전기적 신호로 의미를 전달할 수 있는 가장 간단한 방법이기 때문입니다. 컴퓨터가 의미를 구분할 수 있는 최소 단위가 on/off이기 때문에 컴퓨터는 2진수 0,1를 사용합니다. 2. 컴퓨터 회로들은 2진수로 되어 있는데, 왜 16진수를 사용하는 걸까? 2진수를 컴퓨터에게 0과 1로 단순하게 처리할 수 있어서 속도를 높여주지만 조..
Naive Bayes 자동화 스크립트 우선 파일명을 입력 받고, 컬러명이 있는지에 관한 유무와 라벨이 위치한 번호 마지막으로 제거할 컬럼의 위치를 입력 받아보겠습니다. 추가로 if문을 돌려서 패키지 설치가 되어 있으면 패스하고 아니면 설치하도록 하겠습니다. if (length(setdiff(packages, rownames(installed.packages()))) > 0) { install.packages(setdiff(packages, rownames(installed.packages()))) } library(tm) library(gmodels) input_table
나이브 베이즈를 활용한 영화 장르 분류를 이번에 해보겠습니다. 예전에 포스팅했던 knn과 마찬가지로 그리 어렵지도, 코드가 길지도 않아서 한두번 해보면 금방 익숙해 질꺼 같습니다. DataSet 데이터는 선호하는 영화장르 데이터를 사용했으며, 데이터는 여기에서 다운받아 보실 수 있습니다. 물론 포스팅에서 사용된 코드는 제 Github에서 전부 보실 수 있습니다. # 패키지 설치 install.packages("e1071") library(e1071) movie
나이브 베이즈는 확률을 기반으로 한 머신러닝의 한 알고리즘입니다. 현재까지도 유용하고 많이 사용되고 있습니다. 확률로 인한 데이터 분류 기상학자가 날씨예보를 할 때, 일반적으로 "비올 확률 70%" 라는 용어를 사용해 예측을 합니다. 여기서 나온 70%는 과거의 사건 데이터를 사용한 것이며, 과거에 이런 경우가 10번 중 7번은 비가 왔음을 의미하는 것입니다. 베이즈기법 기반인 분류기는 분류되지 않은 데이터를 분류기가 분류할때, 새로운 속성에 대한 가장 유사한 범주를 예측하기 위해 관찰된 확률을 사용합니다. 관찰된 확률은 훈련 데이터에서 의해서 미리 계산이 되어집니다. 확률 이론 확률에는 결합 확률, 조건부 확률, 베이즈 정리가 있습니다. 1. 결합 확률 결합 확률은 서로 배반되는 두 사상 E와 F가 있..
앞으로 다양한 데이터를 만나더라도 손쉽게 스크립트 하나로 knn을 돌리기 위해 간단하게 만들어보겠습니다. knn 자동화 스크립트 파일명을 입력 받고, 컬러명이 있는지에 관한 유무와 라벨이 위치한 번호 마지막으로 제거할 컬럼의 위치를 입력 받아보겠습니다. library(data.table) library(class) input_table
오늘은 적절한 k값을 알아내는 방법에 대해 이야기 해보겠습니다. 여태껏 이 블로그에서 다양한 데이터를 사용하여 knn 분류를 해보았는데, 그때마다 k값을 다르게 하면 매번 값이 달라진다는 것을 어렴풋 다들 알고 계실꺼라 생각합니다. 그렇다면 적절한 k값을 찾기 위해서는 어떻게 해야댈까요 ? 오늘은 그 방법에 대해 알아보겠습니다. 마찬가지로 데이터는 데이터는 여기에서 볼 수 있으며 전체 코드 역시 GitHub에서 보실 수 있습니다. DataSet 이번 데이터는 부도 데이터이며, load 후에 결측값과 공백값을 제거하겠습니다. HMEQ
오늘은 knn을 사용하여 유방암 분류를 해볼까합니다. 데이터는 데이터는 여기에서 볼 수 있으며 전체 코드 역시 GitHub에서 보실 수 있습니다. 월래 오늘 적절한 k값을 알아내는 것에 관려하여 포스팅을 할 예정이였으나, R에서 knn 관련 데이터 예제로 가장 많이 사용하는 것중에서 하나만 집고 넘어가는 것도 나쁘지 않고 해서 오늘은 유방암 데이터를 가지고 분류를 해보도록 하겠습니다. DataSet 우선 데이터를 load 해보겠습니다. wisc
이전에 Go for문에 대해서 알아봤는데 for문과 비슷하게 조건문만 표시하면 C언에서 while을 사용하듯이 사용할 수 있습니다. 오늘은 이 while문에 대해 알아보겠습니다. Go가 설치되어 있지 않지만 실행을 해보고 싶다면, 여기를 클릭해주세요. Go while Go에서 while은 for문 처럼 조건문만 표시하면 사용 할 수 있습니다. package main import "fmt" func main() { sum := 1 for sum < 1000 { sum += sum } fmt.Println(sum) } 또한 for에서 조건문을 생략하면 무한 루프를 간단하게 표현할 수 있습니다. package main func main() { for { } }
오늘은 GO 반복문과 조건문에 대해 배워보도록 하겠습니다. 예전 포스팅에서 한번 언급 하긴 했었는데 GO에서 반복문은 for문 밖에 없다고 이야기 했었습니다. 오늘은 그 for문에 대해 알아보도록 하겠습니다. Go가 설치되어 있지 않지만 실행을 해보고 싶다면, 여기를 클릭해주세요. Go 반복문(for문) Go 언어는 반복문이 for문 밖에 없으며 기본적인 for반복문은 c와 java와 거의 유사합니다. 다른점이 있다면 소괄호가 필요하지 않다는 점뿐입니다. 하지만 실행문을 위한 중괄호 {}는 필요합니다. package main import "fmt" func main(){ sum := 0 for i := 0; i
GO언어의 구문과 자료형 그리고 변수에 대해 알아보도록 하겠습니다. GO언어는 언어의 장벽이 그렇게 높지 않기 때문에 금방 배우실 수 있습니다. 특히나 C언어를 주로 이용하여 개발을 하셨던 분이거나 익숙하시다면 더욱이 GO언어가 쉽다고 느낄 수 있습니다. GO언어의 구문 주석 처리 할때, 한줄 주석은 (//), 여러 줄 주석은 (/* */)으로 합니다. 들여쓰기는 일반적으로 탭을 사용하지만 이부분은 크게 신경쓰지 않으셔도 됩니다. 그 이유는 Format이라는 기능을 이용해 일괄적으로 다 맞추어주기 때문이죠. 이 부분은 아래에서 설명하겠습니다. GO언어에서 코드블록을 시작하는 중괄호의 위치가 중요한데, 중괄호의 위치는 시작하는 코드와 꼭 같은 줄이여야 합니다. 문장의 끝에 보이지는 않지만 (;)을 붙이기 ..
여태까지 작은 데이터로 분류했으니 이번엔 약간 조금 더 큰 데이터를 이용해보도록 하겠습니다. 데이터는 여기에서 zoo.csv를 다운 받아주세요. 제가 사용한 데이터의 원문은 여기를 클릭하면 보실 수 있습니다. DataSet 데이터는 동물 종류에 따른 특징들이 있고, 라벨은 포유류, 조류, 파충류, 어류, 양서류, 곤충류, 갑각류 총 7가지가 있습니다. 우선 데이터를 불러와서 동물의 비율이 어떻게 되는지 확인해보겠습니다. zoo
오늘은 조금 재미있는 데이터를 가져와봤습니다. 토마토가 야채인지, 과일인지, 단백질인지를 knn을 통하여 분류해서 알아내는 작업을 해보겠습니다. 이번 포스팅에서 사용 되는 데이터는 아래에서 데이터를 직접 만들어서 작성 할 거라서, 따로 다운 받으실 필요는 없습니다. DataSet 데이터는 아래와 같습니다. 과일은 사과, 바나나, 당근, 치즈 등 작지만 다양한 데이터 입니다. food
이번 포스팅에서는 PL/SQL의 예외처리(exception)처리에 대해서 알아보겠습니다. 그리고 예외처리를 왜 해야하는지와 종류에 대해 알아보겠습니다. 예외처리(exception) 에외처리는 오라클에 에러가 났을 때, 엔드유져(프로그램 사용자)의 눈높이를 맞추기위해 사용하는 문법입니다. 예를들어 홈플러스 계산원이 컴퓨터 프로그램 화면에 고객번호를 입력하고 해당고객정보를 보려고 했는데, 오라클 에러메세지가 화면에 "ORA-0001 Data not found ...." 이런식으로 나온다면 사용자의 경우 알 수 없습니다. 그렇기 때문에 "해당 고객은 존재하지 않습니다."와 같이 에러 메세지를 바꿔주어야 합니다. 또한 비정상장적으로 프로그램이 종료되지 않기 위해서도 사용합니다. Data가 잘못되어서 프로그램이 ..