Pink Rose Flower

Python/파이썬으로 배우는 머신러닝 기초 교육 13

7일차(지도학습과 비지도학습)

##와인 데이터 가져오기 import pandas as pd wine=pd.read_csv("https://bit.ly/wine-date") wine ##문제지와 정답지 나누기 data=wine[['alcohol','sugar','pH']].to_numpy() target=wine['class'].to_numpy() ##일정한 비율로 데이터 나누기 from sklearn.model_selection import train_test_split train_input,test_input,train_target,test_target=train_test_split(data,target,test_size=0.2) ##데이터 전처리하기 from sklearn.preprocessing import StandardSca..

6일차(선형 회귀와 로지스틱 회귀)

##농어 데이터 저장하기 import numpy as np perch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7, 23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5, 27.5, 28.0, 28.7, 30.0, 32.8, 34.5, 35.0, 36.5, 36.0, 37.0, 37.0, 39.0, 39.0, 39.0, 40.0, 40.0, 40.0, 40.0, 42.0, 43.0, 43.0, 43.5, 44.0]) perc..

5일차(K-최근접 이웃 회귀 모델)

K-최근접 이웃 회귀 모델 #K-최근접 이웃 회귀 모델: 길이만 가지고 무게 예측하기 ##농어 데이터 저장하기 perch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7, 23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5, 27.5, 28.0, 28.7, 30.0, 32.8, 34.5, 35.0, 36.5, 36.0, 37.0, 37.0, 39.0, 39.0, 39.0, 40.0, 40.0, 40.0, 40.0, 42.0, ..

5일차(K-최근접 이웃 분류 모델)

#요인 늘려 기계학습 시키기 ##공부시간(x1)만으로 성적을 예측해보았다면, 문제집 푼 개수(x2)의 요인을 추가하여 성적을 예측해보자. from mpl_toolkits import mplot3d x1=np.array([2,4,6,8]) #공부시간 x2=np.array([1,2,1,3]) #문제집 푼 개수 y=np.array([65,85,70,95]) ax=plt.axes(projection='3d') ax.scatter(x1,x2,y) plt.show() #기계학습 시키기 import numpy as np import matplotlib.pyplot as plt x1=np.array([2,4,6,8]) #공부시간 x2=np.array([1,2,1,3]) #문제집 푼 개수 y=np.array([65,85..

4일차(머신러닝 기초)

#간단한 머신러닝 모델 만들어보기 ##공부시간이 성적에 영향을 미칠까??예를 들어 4명의 학생이 있고 4명의 공부시간과 성적은 아래와 같다고 가정하자. 2시간 공부한 학생의 성적=654시간 공부한 학생의 성적=856시간 공부한 학생의 성적=708시간 공부한 학생의 성적=95이 값들을 하나의 직선으로 표현 한다면 어떤 직선을 그려야 할까??먼저, 정확하진 않지만 예측선을 그려본다.양 끝 두 점을 이어 예측선을 그려본다.예측값이 있다면 실제값이 있고 이 둘 사이에는 차이값, 즉 오차가 존재한다.이때, 인공지능은 오차값을 줄여나가는 과정에서 오차가 0인 값을 찾는게 아니라 오차가 가장 적은 값을 찾는 과정이기 때문에 오차 값을 구할때 제곱의 합을 구해도 상관 없다.(절댓값도 사용 가능)오차제곱의 그래프 형태를..

4일차(데이터 분석 및 텍스트마이닝)

#파일 저장하고 가져오기 import pandas as pd pew=pd.read_csv("pew.csv") pew ##pew 데이터는 종교에 따른 소득 데이터 ##위 표는 비효율적이다. 성격이 비슷한 돈에 관한 열이 금액 별로 있어 불필요하게 많다. 돈에 관한 열을 하나로 만든다면 보기에도 좋고 머신러닝 관점에서 봤을 때 데이터가 더 늘어나기 때문에 좋다.(학습시키기에 좋다.) ##같은 성격을 가지고 있는 열들을 하나의 열로 만드는 게 필요하다. #melt 함수를 이용하여 열을 행으로 내리기 pew2=pd.melt(pew,id_vars='religion',var_name='income',value_name='count') pew2 ##melt 함수 : 열을 행으로 내려주는 함수 id_vars 고정할 열..

3일차(데이터 분석 및 시각화)

#seaborn : 파이썬 시각화 라이브러리 #데이터 시각화가 필요한 이유 : 수치로 되어있는 데이터보다 별도의 분석 없이 빠르고 직관적인 이해가 가능 #seaborn라이브러리에 저장된 데이터 가져오기 import seaborn as sns anscombe=sns.load_dataset("anscombe") anscombe ##anscombe는 seaborn 라이브러리에 저장되어있는 데이터 집합 ##anscombe외에 tips라는 데이터 집합도 있음. #특정 열에 접근하기 anscombe[anscombe['dataset']=='I'] ##ansscombe의 dataset열이 I인 값에만 접근 #데이터 저장하고 데이터별로 평균값 구하기 >data1=anscombe[anscombe['dataset']=='I..

3일차(데이터 가공)

#csv파일과 tsv파일의 차이점 csv(Comma-separated values) 데이터를 , (콤마) 로 구분 tsv(Tab-separated values) 데이터를 \n (탭)으로 구분 #pandas를 이용하여 csv파일 불러오기 import pandas as pd df=pd.read_csv('concat_1.csv',sep=',') df #pandas로 tsv 파일 불러오기 df=pd.read_csv('gapminder.tsv',sep='\t') df #head() 함수 df.head() #첫 다섯 줄 불러옴 # tail함수 df.tail() #마지막 다섯줄 불러옴 #columns 함수 >df.columns #컬럼명 출력 Index(['country', 'continent', 'year', 'li..

2일차(데이터 크롤링3)

#네이버금융 홈페이지의 데이터크롤링이 필요한 이유 :현재 네이버금융 페이지의 코스피,코스닥 안에서는 특정한 키워드 검색이 불가능하기 때문에 크롤링을 통해 데이터를 가져온다면 키워드를 검색하거나 오름차순,내림차순 정렬 등이 가능하여 원하는 데이터에 더 쉽게 접근할 수 있음. #코스닥 메뉴의 첫페이지 데이터 가져오기 >import requests >from bs4 import BeautifulSoup >import pandas as pd > >url=requests.get("https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page=1") >html=BeautifulSoup(url.text) > >table=html.select('table.type_2..

2일차(데이터 크롤링2)

#url 가져올 때 메인창에서 검색을 해야하는 이유 : 어떤 키워드를 검색하고 메인 창이 아닌 창에서 연속으로 다른 키워드를 검색할 경우, url에 기록 남음. 깔끔한 url 을 가져오기 위해 메인 창에서 검색해야 함. #로또 현재 회차 데이터 가져오기 >import requests >from bs4 import BeautifulSoup >import pandas as pd > > >url=requests.get("https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=%EB%A1%9C%EB%98%90") >html=BeautifulSoup(url.text) #text로 번역 >html.select('a._lo..