scikit-learn, machine learning in python by 바죠

scikit-learn


scikit-learn은 파이썬 라이버러리 모듈이다. 특히, 기계학습에 관한 포괄적인 기능을 제공한다.
파이썬을 활용한 기계학습은 사실상 scikit-learn 라이버러리를 활용하는 것을 의미한다.
현실적으로 그렇다. 현재 이보다 더 범용적인 것이 없다.
기계학습을 넘어 딥러닝으로 확장이 가능하다. 다른 라이버러리들도 scikit-learn 라이버러리를 이용하고 참고 하고 있다.

scikit-learn

Machine Learning in Python

  • Simple and efficient tools for data mining and data analysis
  • Accessible to everybody, and reusable in various contexts
  • Built on NumPy, SciPy, and matplotlib
  • Open source, commercially usable - BSD license



붓꽃 꽃잎, 꽃받침의 넓이와 길이를 입력으로 꽃 종류를 예측하는 기계학습.

1. sepal length in cm
2. sepal width in cm
3. petal length in cm
4. petal width in cm
5. class:
-- Iris Setosa
-- Iris Versicolour
-- Iris Virginica
꽃 종류는  3가지이다.
세가지 종류(Versicolor, Setosa, Virginica)의 꽃을 
Sepal (꽃받침), Petal(꽃잎) 값들로 부터 분류해 버리는 것을 기계학습으로 진행할 수 있다. 
정확히는 Sepal 길이, 폭, Petal 길이, 폭 등 4가지 숫자를 이용한다. 길이는 cm 단위로 측정된 것들이다.
Iris flower dataset
Sir Ronald Aylmer Fisher (1936)

# Sample Decision Tree Classifier
from sklearn import datasets
from sklearn import metrics
from sklearn.tree import DecisionTreeClassifier
# load the iris datasets
dataset = datasets.load_iris()
# fit a CART model to the data
model = DecisionTreeClassifier()
model.fit(dataset.data, dataset.target)
print(model)
# make predictions
expected = dataset.target
predicted = model.predict(dataset.data)
# summarize the fit of the model
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))

DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,
            max_features=None, max_leaf_nodes=None, min_samples_leaf=1,
            min_samples_split=2, min_weight_fraction_leaf=0.0,
            presort=False, random_state=None, splitter='best')
             precision    recall  f1-score   support

          0       1.00      1.00      1.00        50
          1       1.00      1.00      1.00        50
          2       1.00      1.00      1.00        50

avg / total       1.00      1.00      1.00       150

[[50  0  0]
 [ 0 50  0]
 [ 0  0 50]]


from  sklearn import  datasets
iris=datasets.load_iris()
x=iris.data
y=iris.target
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=.5)
from sklearn import tree
classifier=tree.DecisionTreeClassifier()
classifier.fit(x_train,y_train)
predictions=classifier.predict(x_test)
from sklearn.metrics import accuracy_score
print(accuracy_score(y_test,predictions))




덧글

댓글 입력 영역

최근 포토로그



MathJax