- 전체
- Python 일반
- Python 수학
- Python 그래픽
- Python 자료구조
- Python 인공지능
- Python 인터넷
- Python SAGE
- wxPython
- TkInter
- iPython
- wxPython
- pyQT
- Jython
- django
- flask
- blender python scripting
- python for minecraft
- Python 데이터 분석
- Python RPA
- cython
- PyCharm
- pySide
- kivy (python)
Python 인공지능 [파이썬 머신러닝] Scikit-learn 기초
2020.01.31 12:44
Scikit-learn 기초
In [2]:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris # 자주 사용하는 자료라 함수가 사이킷 런에 들어있기 때문에 이렇게 로드할 수 있다.
iris = load_iris()
# loadtxt이므로 iris.data와 같은 형식으로 쓴다.
In [3]:
dir(iris)
Out[3]:
In [4]:
iris.feature_names
Out[4]:
In [5]:
iris.target_names
Out[5]:
In [6]:
display(iris.target, iris.target.shape)
In [7]:
display(iris.target[iris.target==0].shape, iris.target[iris.target==1].shape, iris.target[iris.target==2].shape)
# 줄 단위로
In [8]:
display(iris.data.shape, iris.data[:5])
In [9]:
from sklearn.model_selection import train_test_split
#help(train_test_split)
In [10]:
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target)
# 데이터를 모두 집어넣어 분석해 모델을 만들 수 있겠지만, 새로운 데이터가 나타나야 그 모델을 테스트 할 수 있다.
# 그러므로 모델을 만들때 일부를 남겨두고 모델을 만든다음, 그 남겨진 데이터를 테스트용 데이터로서 사용한다.
# train은 훈련용, test 테스트용 75%, 25% 섞어서 랜덤하게(뽑는 방법을 설정할수도 있다.)
display(X_train.shape, X_test.shape, y_train.shape, y_test.shape)
# 아이리스 데이터가 150x4, 타겟이 150x1인데 데이터를 훈련용으로 112x4, 테스트용으로38x4, 타켓을 훈련용으로 112x1, 테스트용으로 38x1 로 나눈다.
In [11]:
display(X_train[:5], y_train[:5])
In [16]:
import pandas as pd
iris_df = pd.DataFrame(X_train, columns=iris.feature_names)
# DataFrame은 데이타 안에다가 칼럼 이름까지 넣을 수 있다. 인덱스를 자동으로 지정 할 수 있다.
iris_df[:5] # [:5,1] 이런건 안된다.
Out[16]:
In [18]:
pd.plotting.scatter_matrix(iris_df, c=y_train, s=60, alpha=0.8, figsize=[12,12])
# scatter_matrix라는 함수를 이용하기 위해서 pandas를 사용했다.
# 데이터에서 2개씩 짝지어서 6개의 산점도를 그렸다.
# 자기자신은 히스토그램
print('')
In [19]:
from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(n_neighbors=1) # 기본값은 5
model.fit(X_train, y_train) # fit 데이터를 줄테니 모델을 만들어봐. > 이를 이용해 예측
Out[19]:
In [20]:
model.predict([[6,3,4,1.5]]) # 샘플이 하나라도 2차원 어레이를 넘겨야 한다
# predict 예측.
Out[20]:
In [21]:
score = model.score(X_test, y_test) # score를 이용해 평가
print(score) #원래 잘 분리된 데이터라 높게 나왔다
In [25]:
pred_y=model.predict(X_test)
pred_y==y_test
Out[25]:
In [24]:
(model.predict(X_test)==y_test).mean()
Out[24]:
In [66]:
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target)
model = KNeighborsClassifier(n_neighbors=1) # 섬이 생길 수 있다.
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print(score)
In [62]:
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target)
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print(score)
In [65]:
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target)
model = KNeighborsClassifier(n_neighbors=10)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print(score)
In [72]:
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target)
model = SVC(C=1.0, gamma=0.1)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print(score)
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 11 |
[PyQT5] PyQt5 Mainwindow에 Qt Designer를 사용한 graph Widget 추가
| 졸리운_곰 | 2024.06.06 | 476 |
| 10 |
[PyQT5] [Python with Pyqt5] Widget에다가 그래프 넣기 (Feat. Matplotlib)
| 졸리운_곰 | 2024.06.06 | 437 |
| 9 |
[PyQT5] 파이썬(Python)PyQt5 - QMessageBox 사용하기
| 졸리운_곰 | 2024.06.06 | 455 |
| 8 |
[PyQT5] UI Designer 에서 Tab Widget 생성 하기
| 졸리운_곰 | 2024.06.06 | 420 |
| 7 |
[PyQT5] UI Designer 에서 리사이즈 시 같이 확장하기
| 졸리운_곰 | 2024.06.06 | 537 |
| 6 |
[PyQT5] UI Designer 에서 Grid Layout 배치 해보기
| 졸리운_곰 | 2024.06.06 | 474 |
| 5 |
[pyQT] 「Python : PyQt5」 Qt Designer : .ui → .py 변환
| 졸리운_곰 | 2024.06.05 | 624 |
| 4 |
[pyQT] Dev/python/ [pyqt5] 프로그램창을 항상 가장 위에 있게 하면서 동시에 타이틀 바도 없게 하려면?
| 졸리운_곰 | 2024.06.01 | 542 |
| 3 |
[pyQT] QtDesigner에서 리소스 편집기 사용하기
| 졸리운_곰 | 2024.05.28 | 499 |
| 2 |
[pyQT] Qt Resource 파일 (.qrc) 적용방법
| 졸리운_곰 | 2024.05.28 | 421 |
| 1 | [pyQT] from PyQt5.QtChart import QLineSeries, QChart, QValueAxis, QDateTimeAxis ImportError: DLL load failed while importing QtChart: 지정된 모듈을 찾을 수 없습니다. | 졸리운_곰 | 2024.01.28 | 430 |

