지능 – 인간이 가지는 고유한 성질, 생각하고 이해함으로써 행동으로 옮기는 능력
인공지능 : 컴퓨터가 학습하고 생각하여 스스로 판단할 수 있게 만드는 기술
사전적 개념 | 지성을 갖춘 존재, 시스템에 의해 만들어진 인공지능 |
전통적 개념 | 컴퓨터가 인간의 행동을 모방할 수 있게 하는 소프트웨어 |
기술적 개념 | 인간의 지능으로 할 수 있는 사고 합승 등을 컴퓨터가 할 수 있게 하는 방법을 연구하는 학문 |
프로그래밍 : 사람이 구현 vs 인공지능 : 스스로 데이터 학습
인공지능의 첫 등장 1956년 다트머스 컨퍼런스
전제: 학습의 모든 측면, 지능의 모든 특성이 원칙적으로 정확히 기술> 묘사하는 기계 연구
목표 – 사람의 다양한 능력을 컴퓨터가 대신
인공지능의 발달> 로봇의 기능 향상> 실생활에 로봇 도입 > 새로운 결과물
장점: 노동 대체, 자동화(RPA – 사람이 하는 업무 자동화), 개인 능력 격차 완화
단점: 멍청한 AI, 법적, 윤리적 책임 소재 문제, 빈부 격차의 심화, 예측 불가능한 AI(경험X상황)
빅데이터의 중요성!
분류는 지적수준, 기능발전, 구현방식(지식(인지, 추론)기반, 데이터(머신러닝, 데이터 마이닝) 기반)으로 나뉨
인공지능 서비스 개발 과정 : 데이터 수집> 저장 및 처리> 프로그램 제작> 활용 및 서비스 배포
활용, 배포 | 하드웨어 | |
IOT – 수집 | 센싱 | |
네트워크 | ||
서비스 인터페이스 기술 | ||
5G 기술 – 전송 | 초고속성 | |
초연결성 | ||
초저지연성 | ||
클라우드 장점 | 신속, 유연한 인프라 관리 | |
클라우드 단점 | 비용, 유출에 대한 불안함 |
리스트[] | .append(), remove() 가능 |
튜플() | 위에 것 불가 |
딕셔녀리{‘ ‘: [‘ ‘, ‘ ‘]} |
for I in 리스트형 :
def ______ :
return _____
numpy – 다차원 리스트나 큰 데이터 처리에 유리
1. 빠른 속도, 효율적 메모리 사용
2. 반복문 사용x – 병렬처리, 함수를 한번에 많은 요소에 적용
3. 선형대수 관련 함수
4. 다른 언어와 통합 사용 가능
Import numpy as np
배열 생성 np.array([1,23,4,5,6],int)
모양: df.shape 랭크: df.ndim 크기: df.size 용량: import sys df.itemsize
재배치: df.reshape(x,y) 내용출력 df[ : , : : ] 전부다 1로: np.ones_like(df)
아이덴티티 np.identity(n=3,dtype =int) 같은데 대각선 위치 바꾸기 np.eye(N = 10, M = 15, k=3)
랜덤 출력 np.random.uniform(시작,끝,개수) 정규화된 평균 np.random.normal(평균,분산,개수)
랜덤 정수 출력 np.random.randint(시작, 끝, 개수)
총합 : df.sum() 열 총합 df.sum(axis=0) 평균 : mean(axis=0)
두 배열 더하기 : np.vstack((a,b)) 두 배열 같은 열끼리 붙이기 np.hstack((a,b))
차원 지정해서 더하기 np.concatenate((a,b),axis =__)
행렬 T하기 from traitlets.config.application import T df.T
행렬 곱하기a.dot(b) 전부만족: (x>3).all() 하나라도 만족: (x>3).any()
어디서 만족하냐 np.where(조건, 참일시, 거짓일시)
크기 별 인덱스 순서 np.argsort(_) 인덱스 최대,최소 np.argmax(__)
판다스 – import pandas as pd
표 만들기: pd.Series(data = [ ], index=[ ]) or (완성형, dtype = int, name ‘we’) or (완성형, index =_)
데이터 읽을 때
from google.colab import drive drive.mount(‘/content/drive’)
df = pd.read_csv(‘/content/drive/MyDrive/Colab Notebooks/housing.data’, sep’\s+’,header=None)
엑셀 열기 !pip install openpyxl df = pd.read_excel 뒤엔 똑같음
직접 만들기 pd.DataFrame(딕셔너리로 된것, columns =[‘ ‘, ‘ ‘]) 원하는 것만 추출 가능
몇 개만 출력 df.head() 원하는 것 출력 df[[‘ ’ ,’ ’]][ : 3 ] 지우기: del df[‘ ‘]
원하는 곳 출력: df.loc[_:_,[‘ ‘ ,’ ‘]] 행삭제 df.drop(_, inplace = True)
그룹화 df.groupby([‘ ‘, ‘ ‘])[‘ ‘].sum() 그룹에서 최솟값 df.agg(min) 그룹 평균값 df.agg(np.mean)
병합하기 (같은 사람 다른 정보 )
df.merge(병합할, 대상, on = ‘무엇으로’, how=’기준’(right, left, outer, inner))
연결 (다른 사람 같은 정보) df.concat([__,__,__], axis=0) 인덱스 정렬 df.reset_index(drop = True)
데이터 시각화 - Import matplotlib.pyplot as plt
그래프 그리기 plt.plot(x , y , colot = ‘ ’, linestyle = ‘ ‘, label = ‘ ‘)
부가 사항 plt.title(“ “) plt.ylabel(‘ ‘) 점 그래프 plt.scatter(x, y, c = ‘ ‘, marker = ‘ ‘)
바 그래프 plt.bar(x, y, c = ‘ ‘, width = 3) 바(x의 범위의 밀집도) plt.hist(x , bins = 범위)
박스 그래프 plt.boxplot(x) x의 중앙값, 25% ~ 75%를 박스에 표현
시본 seaborn 라벨 자동 생성, 데이터프리임과 x,y만 지정
Import seaborn as sns
직선형 sns.lineplot(x=’__’, y = ‘__’, data = __ , hue= ‘범례’)
점들 사이 선형 회귀 sns.regplot(x = ‘__’, y=’__’, hue= ‘__’, x_ci(신뢰구간) = )
점들 hue에 따라 색 구분 sns.scatterplot(x = ‘__’, y = ‘__’, hue = ‘ ‘, data =)
데이터를 x에서 hue에 따라 바형으로 그림 sns.countplot( x = ‘_’, hue = ‘_‘, data = )
두개에 대해 막대 그래프 sns.barplot(x= ‘ ‘, y = ‘ ‘, data)
x,y에 대해 hue로 나눈 바이올린형 그래프 sns.volineplot(x = ‘__’, y = ‘__’, hue = ‘ ‘, data =, palette = ‘muted’)
트리형 그래프 hue는 색구분 sns.swarmplot(x = ‘__’, y = ‘__’, hue = ‘ ‘, data =, palette = ‘muted’)
그래프 여러가지 g=sns.FacetGrid(표현할 것(팁),col= ‘기준’, row = ‘기준’)
g.map(____, ‘x’, ‘y’)
플롯리 – 사용자와 상호작용 가능 import plotly.express as px
fig = px.scatter(df, x='sepal_width',y='sepal_length')
fig.show()
fig = px.parallel_coordinates(df,color='species_id',
labels={'species_id':'Species',
'sepal_width':'Sepal Width',
'sepal_length':'Sepal Length',
'petal_width':'Petal Width',
'petal_length':'Petal Length'},
color_continuous_scale= px.colors.diverging.Tealrose,
color_continuous_midpoint = 2)
fig.show()
머신러닝 – 선형회귀 장 : 쉽다 빠르다 단 : 예측력 낮음, 선형관계에서 벗어나면 별로
오버 피팅: 학습 과다> 예측 하강> 높은 편향 언더 피팅: 하급 저하> 예측 하강> 높은 분산
데이터 값 보기 df.describe()
데이터 전처리 – 종속 변수(y)와 독립 변수(x) 분리
X = df.drop[‘y에 넣을 값’]] y=[‘ ‘]
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.2, random_state = 100)
from sklearn.linear_model import LinearRegression model = LinearRegression()
학습 model.fit(X_train, y_train) 예측 pred=model.predict(X_test)
RMSE – 루트 제곱 오차, MAE – 평균 절대값 오차, MSE – 평균 제곱 오차
R^2 독립변수가 종속 얼마나 설명하는지
From sklearn.metrics import mean_squared_error 이건 RMSE mean_squared_error(y_test, pred)**0.5
이건 R^2 model.score(X_train, y_train)
종속 변수에 끼치는 영향 model.coef_ 를 보기 쉽게 pd.Series(model.coef_, index =X.columns)
로지스틱 회귀 – yes or no
장 : 구현 해석 쉽다, 모델링 시간 짧다 단 : 에측력 별로, 선형 관계를 전재로 함
빈 값 확인 data.info() 데이터간 관계 확인 data.corr()
필요없는 데이터 버리기 data.drop([‘ __’,’__’], axis=1)
글자로 된 변수들 숫자로 바꾸고 첫번째 버리기
data= pd.get_dummies(data, columns = [‘ ‘, ’ ‘], drop_first = True)
연관된 값은 합쳐서 하기
data[‘c’] = data[‘a’] + data[‘b’] data.drop([‘b’ ,’c’], axis=1, inplace=True)
from sklearn.model_selection import train_test_split
X= data.drop (‘survived’, axis = 1) y= data[‘survived’]
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.2, random_state = 100)
From sklearn.linear_model import RogisticRegression model = LogisticRegression()
훈련 model.fit(X_train, y_train) 예측 pred = model.predict(x_test)
From sklearn.metrics import accuracy_score 예측 점수 accuracy_score(y_test, pred)
KNN- 거리기반 장: 직관, 간단, 별도과정 X 단: 느리고, 이상한값 많으면 성능 보장X
종속 변수 분포 확인하기 import seaborn as sns
Sns.barplot(x=data[‘결과값’].value_count().index , y=data[‘결과값’].value.count())
빈 값 확인 data.isna().sum() 빈값 지우기: data.dropna(subset=[‘빈칸이면 지울 이름’])
빈 값 중간값으로 채우기 data.fillna(data.median(), inplace=True)
스케일링 – 독립변수의 변동 폭 맞추기
표준화 StandardScaler() | 평균 0, 표준 편차1 이상치에 영향 받음 |
로버스트 RobustScaler() | 중간값 사용, 75%, 25% 지점 차로 나눈다 아웃라이어 영향력O |
최소 최대 MinMaxScaler() | 최대1, 최소0으로 변환 -> 분포 특성 그대로 유지 |
주의점 1. 종속 변수 제외 2. 훈련셋, 시험 셋 나누고 나서 훈련셋에서만 진행
표준화 스케일링
From sklearn.preprocessing import StadardScaler() st_scaler = StandardScaler()
from sklearn.model_selection import train_test_split
X = df.drop[‘y에 넣을 값’]] y=[‘ ‘]
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.2, random_state = 100)
st_scaler.fit(X_train) 훈련값으로 스케일링
X_train_scaled =st_scaled.transform(X_train) X_test_scaled =st_scaled.transform(X_test)
하이퍼 파라미터 조정( 반복문으로 p1,2와 k값 바꾸면서 최대 점수 찾기)
From sklearn.neighbor import KNeighborsClassifier
Knn = KNeighborsClassifiers(p= 1, n_neighbors = __ ) knn.fit(X_train_scaled,y_train)
Pred = knn.predict(X_test_scaled)
From sklearn.metrics import accuracy_score 예측 점수 accuracy_score(y_test, pred)
'인공지능 > 공부' 카테고리의 다른 글
인공지능과 빅데이터 7주차 1차시 - 딥러닝 프레임워크 (0) | 2024.04.15 |
---|---|
고급 인공지능 활용 - 기말 고사 정리 (0) | 2024.04.14 |
고급 인공지능 활용 과제 5 - 분류하기, 클러스터링 (0) | 2024.04.13 |
고급 인공지능 활용 과제 4 - knn, 결정트리, 로지스틱 회귀 (0) | 2024.04.13 |
고급 인공지능 활용 과제 3 - 로지스틱 회귀, KNN 알고리즘, 스케일링 (0) | 2024.04.13 |