반응형 Python127 머신러닝 - 선형 회귀(Linear regression) 알고리즘 특징과 코드 선형 회귀와 다항 회귀는 머신러닝에서 K-최근접 이웃점 회귀과 함께 기본적으로 배우게 되는 머신러닝 모델이자, 성능이 좋은 모델이라고 할 수 있다. 특히 K-최근접 이웃점 회귀과 다르게 미래를 예측할 수 기능을 가지고 있다. K-최근접 이웃점 회귀 는 미래의 데이터를 예측하는데에는 사용하기 어렵다. 이유는 학습 데이터의 평균으로 예측을 하기 때문에, 만약 측정되지 않은 값이 들어온다면, 예측이 되지 힘들어진다.이 부분에 선형 회귀를 이용해서 해결할 수 있는데, 이유는 학습 데이터를 통해 유의미한 연결 선을 생성하여 해당 선을 통해 측정되지 않은 값도 예측이 가능하게 된다.아래 그림과 같이 파란 점의 학습 데이터가 있다고 하자. 여기에 가장 중심이 되는 선을 하나 긋고, 이를 통해서 학습하지 않은 영역에.. 2024. 6. 8. Python - 스플렁크(Splunk) Query 검색 Splunk 는 외부에서 손쉽게 쿼리 검색등 다양한 작업을 할 수 있도록 지원하고 있다.그중 쿼리 검색에 대해서 알아보도록 하자.먼저 Splunk 라이브러리 splunk-sdk를 설치하자.pip install splunk-sdk이후 아래와 같은 코드를 통해 쿼리 검색이 가능하다.import splunklib.client as client# 스플렁크 연결HOST = "splunk_host"PORT = 8089USERNAME = "account_username"PASSWORD = "account_password"# 검색 쿼리 설정SEARCH_QUERY = "search index=my_index | stats count by _time"# 스플렁크 연결service = client.connect( ho.. 2024. 6. 8. Python - 리스트(list) 중복제거, 고유값 만들기 Python에서 리스트를 중복값을 제거하는 가장 손쉬운 방법은 set() 이라는 내부 함수를 이용하는 방법이다.set()을 이용하면 리턴 값으로 중복된 값을 제거한 list를 기본적으로 dict()로 반환하게 된다.다음과 같이 이용이 가능하다. >>> set([1,2,3,4,5,1,2,4,5,6,2,1,1,34,3,]){1, 2, 3, 4, 5, 6, 34}한글과 같은 문자열도 정상적으로 사용이 가능하다. >>> set(["2","1","1","ㄴ","ㄱ","ㄷ","한","ㄴ","ㄱ"]){'한', '1', 'ㄴ', 'ㄱ', 'ㄷ', '2'}결과를 보면, 딕셔너리 형태이긴 하지만 리스트처럼 활용이 가능하다. 하지만 dict 사용에 데이터타입을 list로 활용하고자 한다면, list 문을 추가하여 결과를 반.. 2024. 6. 8. Python - ' '.join() 리스트(list) 연결하여 문자열 로 만들기 파이썬의 join() 함수는 리스트(list)에 있는 요소들을 지정된 구분자로 연결하여 문자열을 반환하는 함수이다.실무에서 리스트 값을 문자열로 표현하고자 할 때 자주 사용된다.예제 코드로 살펴보면, 아래와 같이 구분자를 \n 를 줄경우 각 리스트에 항목 사이에 \n(줄바꿈)이 들어가서 화면에 표시될때 줄바꿈 효과가 나타나게 된다.strings = ["Hello", "Python", "World"]result = "\n".join(strings)print(result) 만약 공객을 이용하게 되면, 문자열 사이에 공백이 들어가게 된다.strings = ["Hello", "Python", "World"]result = " ".join(strings)print(result) 2024. 6. 8. Python - Regex 정규식 표현과 직접 함수 구현 정규식 표현에 re 라이브러리를 사용하는데, 어느정도 성능적인 이점을 가져가면서 사용할 수 있는지 확인하기 위해서 비교해보았다.import timeitimport re# 정규식 사용def find_strings_three_more_numbers(input_string): pattern = r'\D*\d\D*\d\D*\d\D*' matches = re.findall(pattern, input_string) return matches# 직접 구현def has_three_more_numbers(input_string): num_count = 0 for char in input_string: if char.isdigit(): num_count +.. 2024. 6. 8. Python - Days, 날짜 Count 쉽게 계산하기 Datetime 값을 처리하다보면, Days(날짜)값을 확인하고 싶은 경우가 많다.이럴경우 가장 쉽게 진행할 수 있는 방법은 초단위로 변환한 후 Round 내장함수로 처리해주는 것이 가능하다.코드는 다음과 같다. import datetimestart_date = datetime.datetime.now()end_date = datetime.datetime.now()end_date = end_date + datetime.timedelta(days=5)sub_date = end_date - start_date# 전체 초시간을 하루 초단위로 구해진 값day_count = (sub_date.total_seconds() / 86400)#.0 이하를 버리기 위해서는 round로 처리해주는.. 2024. 4. 24. Python - 리스트(Lists)간 교집합(중복/공통값), 합집합(고유/유일값) 값 확인하기 Python 코드에서 리스트를 자주 다루는데, 이때 동시에 List에서 중복 값, 고유/유일값을 확인해야 하는 상황이 종종 발생한다. 이때 활용할 수 있는 방법으로 List간 교집합을 하는 방법으로 몇가지가 있는지 알아보도록 하자. 그럼 먼저 쉬운 합집합 부터 확인해보자. 1. 합집합(고유/유일값) 합집합은 두 집합의 속한 중복이 제외된 모든 원소의 집합이라고 할 수 있다. 파이썬에서는 합집합을 쉽게 작성할 수 있는데, 바로 set 함수 이다. 이외에도 | 를 이용해서 포함되는 모든 원소를 확인이 가능하다. 1. | 함수 | 함수를 이용해서 중복값을 제외한 값들을 반환한다. >>> alist = {1,2,3,4,5} >>> blist = {4,5,6,7,8} >>> clist = alist | blist.. 2024. 4. 12. Django - MySQL/MariaDB 연결하기 대부분의 서비스용도로 사용하다면, 기본적으로 제공하는 파일 기반의 Database인 SQLlite 보다는 MySQL, 혹은 MariaDB를 통해 Database를 사용하는 것이 확장성에 좋기 때문에 MySQL/MariaDB 연결 방법에 대해서 정리해 본다. 1. mysqlclient 설치 가장 먼저 해야 할 일은 MySQLClient를 설치하는 것이다. Visual Studio 기준으로 env 에서 마우스 우클릭을 통해 Manage Python Packages 에서 mysqlclient를 입력하여 설치할 수 있으며, 이는 pip를 통해 설치한 것과 동일하다. 설치가 완료되면, pip 패키지 설치는 아래와 같이 가능하다. pip install mysqlclient 설치가 완료되면, 패키지가 추가된 것을 확.. 2024. 4. 12. Python - SQLAlchemy, NULL/empty Column 포함하기 Python을 사용하는데, SQLAlchemy를 활용하는 경우가 많다. 이때 NULL을 허용하는 Column이 정상적으로 조회가 되지 않는 경우가 발생하면서, !=과 is not 의 차이점을 알게되었는데 다음과 같다. A Column에는 Int형으로, 1과 0으로 데이터를 넣을 수 있고, Null을 포함한 데이터가 쌓이고 있었다. 하여 필자가 만들고 싶었던 쿼리는 다음과 같다. # 원하는 쿼리 select * from Table where Table.result is not 1 그래서 != 1 통해 쿼리를 만들어 조회하였다. Session.query(Table).filter(Table.result != 1).all() 하지만 실제 쿼리를 해보면, NULL 이거나 Empty인 컬럼은 조회가 되지 않는다. .. 2024. 4. 12. 이전 1 2 3 4 5 ··· 15 다음 반응형