전체 글 59

추천 알고리즘 - TF-IDF, CountVectorizer 활용한 코사인 유사도 기반 텍스트 분석

본 자료는 다음 링크의 내용을 참고하였습니다.Reference : https://www.kaggle.com/code/ibtesama/getting-started-with-a-movie-recommendation-system영화 추천 시스템Demographic Filtering (인구통계학적 필터링)Content Based Filtering (컨텐츠 기반 필터링)Collaborative Filtering (협업 필터링)1. Demographic Filtering (인구통계학적 필터링)import pandas as pdimport numpy as np# 영화 data 로드df1 = pd.read_csv('../data/tmdb_5000_credits.csv')df2 = pd.read_csv('../data/..

Ai/SikitLearn 2025.04.03

05. (비지도학습)_K-Means

5. K-Means군집화, 유사한 특징을 가지는 데이터들을 그룹화데이터를 K개의 클러스터(그룹)로 군집화하는 알고리즘,각 데이터로부터 이들의 속한 클러스터의 중심점(Centroid)까지의 평균 거리를 계산import numpy as npimport matplotlib.pyplot as pltimport pandas as pddataset = pd.read_csv('../data/KMeansData.csv')dataset.head() hourscore07.337313.715523.435533.068943.3379비지도 학습이기 때문에 y 값 없이 X만 가져옴X = dataset.iloc[:, :].values# X = dataset.values# X = dataset.to_numpy() # 공식 홈페이지 ..

Ai/SikitLearn 2025.04.03

04. (지도학습)_Logistic Regression(로지스틱 회귀)

4. Logistic Regression(로지스틱 회귀)공부 시간에 따른 자격증 시험 합격 가능성주어진 데이터를 정해진 범주 (category) 에 따라 분류, 예측 결과가 숫자가 아닐 때선형 회귀 방식을 분류에 적용한 알고리즘,데이터가 어떤 범주에 속할 확률을 0 ~ 1 사이의 값으로 예측더 높은 범주에 속하는 쪽으로 분류범주 : True/False, Yes/No, 합격/불합격import numpy as npimport matplotlib.pyplot as pltimport pandas as pddataset = pd.read_csv('../data/LogisticRegressionData.csv')dataset.head() hourpass00.5011.2021.8032.4042.60X = datase..

Ai/SikitLearn 2025.04.03

03. (지도학습)_Polynomial Regression(다항 회귀)

3. Polynomial Regression(다항 회귀)공부 시간에 따른 시험 점수 (우등생)import numpy as npimport matplotlib.pyplot as pltimport pandas as pddataset = pd.read_csv('../data/PolynomialRegressionData.csv')dataset.head() hourscore00.2210.5420.8630.9441.26X = dataset.iloc[:, :-1].values # 공부시간 컬럼 데이터y = dataset.iloc[:, -1].values # 점수 컬럼 데이터X, y(array([[0.2], [0.5], [0.8], [0.9], [1.2], ..

Ai/SikitLearn 2025.04.03

01. (지도학습)_Linear Regression(선형 회귀)

1. Linear Regression(선형 회귀)공부 시간에 따른 시험 점수import matplotlib.pyplot as pltimport pandas as pddataset = pd.read_csv('../data/LinearRegressionData.csv') # 데이터 로드dataset.head() # 상위 5개 데이터 확인 hourscore00.51011.2821.81432.42642.622X = dataset.iloc[:, :-1].values # 처음부터 마지막 컬럼 직전까지의 데이터 (독립 변수 - 원인)y = dataset.iloc[:, -1].values # 마지막 컬럼 데이터 (종속 변수 - 결과)X, y(array([[ 0.5], [ 1.2], [ 1.8]..

Ai/SikitLearn 2025.04.03

플로이드 워셜 알고리즘 - 미래 도시

미래 도시 (Python)📝 문제 설명미래 도시에는 1번부터 N번까지의 회사가 있는데 특정 회사끼리는 서로 도로를 통해 연결되어 있다.방문 판매원 A는 현재 1번 회사에 위치해 있으며, X번 회사에 방문해 물건을 판매하고자 한다.미래 도시에서 특정 회사에 도착하기 위한 방법은 회사끼리 연결되어 있는 도로를 이용하는 방법이 유일하다.또한 연결된 2개의 회사는 양방향으로 이동할 수 있다. 공중 미래 도시에서 특정 회사와다른 회사가 도로로 연결되어 있다면, 정확히 1만큼의 시간으로 이동할 수 있다.또한 오늘 방문 판매원 A는 기대하던 소개팅에도 참석하고자 한다.소개팅의 상대는 K번 회사에 존재한다. 방문 판매원 A는 X번 회사에 가서 물건을 판매하기 전에 먼저소개팅 상대의 회사에 찾아가서 함께 커피를 마실 ..

다익스트라 알고리즘 - 전보

전보 (Python)📝 문제 설명어떤 나라에는 N개의 도시가 있다. 그리고 각 도시는 보내고자 하는 메시지가 있는 경우,다른 도시로 전보를 보내서 다른 도시로 해당 메시지를 전송할 수 있다.하지만 X라는 도시에서 Y라는 도시로 전보를 보내고자 한다면, 도시 X에서 Y호 향하는통로가 없다면 Y는 X로 메시지를 보낼 수 없다. 또한 통로를 거쳐 메시지를 보낼 때는일정 시간이 소요된다.어느 날 C라는 도시에서 위급 상황이 발생했다. 그래서 최대한 많은 도시로 메시지를 보내고자 한다.메시지는 도시 C에서 출발하여 각 도시 사이에 설치된 통로를 거쳐, 최대한 많이 퍼져나갈 것이다.각 도시의 번호와 통로가 설치되어 있는 정보가 주어졌을 때, 도시 C 에서 보낸 메시지를 받게 되는도시의 개수는 총 몇 개이며 도시들..

다이나믹 프로그래밍 - 금광

금광 (Python)📝 문제 설명n x m 크기의 금광이 있습니다.금광은 1 x 1 크기의 칸으로 나누어져 있으며 각 칸은 특정한 크기의 금이 들어 있습니다.채굴자는 첫 번째 열부터 출발하여 금을 캐기 시작합니다.맨 처음에는 첫 번째 열의 어느 행에서든 출발할 수 있습니다.이후에 m - 1번에 걸쳐서 매번 오른쪽 위, 오른쪽, 오른쪽 아래 3가지 중 하나의위치로 이동해야 합니다.결과적으로 채굴자가 얻을 수 있는 금의 최대 크기를 출력 하는 프로그램을 작성하세요.📌 조건입력 조건 첫째 줄에 테스트 케이스 T가 입력됩니다. (1 각 테스트 케이스는 줄 바꿈을 이용해 구분합니다매 테스트 케이스 첫째 줄에 n과 m 이 공백으로 구분되어 입력됩니다 (1 둘째 줄에 n x m개의 취에 매장된 금의 개수가 공..

다이나믹 프로그래밍 - 1 로 만들기

1 로 만들기 (Python)📝 문제 설명정수 X가 주어졌을 때, 정수 X에 사용할 수 있는 연산은 다음과 같이 4가지 입니다.X가 5로 나누어 떨어지면, 5로 나눕니다.X가 3으로 나누어 떨어지면, 3으로 나눕니다.X가 2로 나누어 떨어지면, 2로 나눕니다.X에서 1을 뺍니다.정수 X가 주어졌을 때, 연산 4개를 적절히 활용해서 값을 1로 만들고자 합니다.연산을 사용하는 횟수의 최솟값을 출력하세요.예를 들어 정수가 26이면 다음과 같이 계산해서 3번의 연산이 최솟값입니다.26 -> 25 -> 5 -> 1📌 조건입력 조건첫째 줄에 정수 X가 주어집니다.1 출력 조건첫째 줄에 연산을 하는 횟수의 최소값을 출력합니다.🔽 입력 예시26🔼 출력 예시3🏆 정답 코드def 모범답안(): x = int..