Scikit Learn
Scikit-learn es una biblioteca de aprendizaje automático para Python. Presenta varios algoritmos de regresión, clasificación y agrupamiento, incluidos SVM, aumento de gradiente, k-means, bosques aleatorios y DBSCAN. Está diseñado para trabajar con Python Numpy y SciPy. El proyecto scikit-learn comenzó como un proyecto de Google Summer of Code (también conocido como GSoC) por David Cournapeau como scikits.learn. Recibe su nombre de “Scikit”, una extensión de terceros separada para SciPy.
Python Scikit-learn
Scikit está escrito en Python (la mayor parte) y algunos de sus algoritmos principales están escritos en Cython para obtener un rendimiento aún mejor. Scikit-learn se utiliza para construir modelos y no se recomienda utilizarlo para leer, manipular y resumir datos, ya que hay mejores marcos disponibles para ese propósito. Es de código abierto y se publica bajo la licencia BSD.
Instalar Scikit Learn
Scikit asume que tienes una plataforma de Python 2.7 o superior en funcionamiento con los paquetes NumPY (1.8.2 y superior) y SciPY (0.13.3 y superior) en tu dispositivo. Una vez que tengamos estos paquetes instalados, podemos proceder con la instalación. Para la instalación con pip, ejecuta el siguiente comando en la terminal:
pip install scikit-learn
Si prefieres conda
, también puedes utilizar conda para la instalación del paquete, ejecuta el siguiente comando:
conda install scikit-learn
Usando Scikit-Learn
Una vez que hayas terminado con la instalación, puedes usar scikit-learn fácilmente en tu código de Python importándolo como:
import sklearn
Cargando Conjunto de Datos de Scikit Learn
Comencemos cargando un conjunto de datos para jugar. Carguemos un conjunto de datos simple llamado Iris. Es un conjunto de datos de una flor, contiene 150 observaciones sobre diferentes medidas de la flor. Veamos cómo cargar el conjunto de datos usando scikit-learn.
# Importar scikit learn
from sklearn import datasets
# Cargar datos
iris= datasets.load_iris()
# Imprimir forma de los datos para confirmar que los datos han sido cargados
print(iris.data.shape)
Estamos imprimiendo la forma de los datos para mayor facilidad, también puedes imprimir todos los datos si lo deseas, ejecutar los códigos da una salida como esta:
Scikit Learn SVM – Aprendizaje y Predicción
Ahora que hemos cargado los datos, intentemos aprender de ellos y predecir en nuevos datos. Para este propósito, tenemos que crear un estimador y luego llamar a su método fit.
from sklearn import svm
from sklearn import datasets
# Cargar conjunto de datos
iris = datasets.load_iris()
clf = svm.LinearSVC()
# Aprender de los datos
clf.fit(iris.data, iris.target)
# Predecir para datos no vistos
clf.predict([[ 5.0, 3.6, 1.3, 0.25]])
# Los parámetros del modelo pueden ser cambiados usando los atributos que terminan con un guion bajo
print(clf.coef_ )
Esto es lo que obtenemos cuando ejecutamos este script:
Regresión Lineal de Scikit Learn
Crear varios modelos es bastante simple usando scikit-learn. Comencemos con un ejemplo simple de regresión.
#importar el modelo
from sklearn import linear_model
reg = linear_model.LinearRegression()
# usarlo para ajustar datos
reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
# Veamos los datos ajustados
print(reg.coef_)
Al ejecutar el modelo debería devolver un punto que se puede trazar en la misma línea:
k-Nearest neighbour classifier
Vamos a probar un algoritmo de clasificación simple. Este clasificador utiliza un algoritmo basado en árboles de bolas para representar las muestras de entrenamiento.
from sklearn import datasets
# Cargar conjunto de datos
iris = datasets.load_iris()
# Crear y ajustar un clasificador de vecinos más cercanos
from sklearn import neighbors
knn = neighbors.KNeighborsClassifier()
knn.fit(iris.data, iris.target)
# Predecir e imprimir el resultado
result=knn.predict([[0.1, 0.2, 0.3, 0.4]])
print(result)
Vamos a ejecutar el clasificador y verificar los resultados, el clasificador debería devolver 0. Vamos a probar el ejemplo:
K-means clustering
Este es el algoritmo de agrupamiento más simple. El conjunto se divide en ‘k’ grupos y cada observación se asigna a un grupo. Esto se hace de forma iterativa hasta que los grupos convergen. Crearemos un modelo de agrupamiento de este tipo en el siguiente programa:
from sklearn import cluster, datasets
# cargar datos
iris = datasets.load_iris()
# crear grupos para k=3
k=3
k_means = cluster.KMeans(k)
# ajustar datos
k_means.fit(iris.data)
# imprimir resultados
print( k_means.labels_[::10])
print( iris.target[::10])
Al ejecutar el programa veremos grupos separados en la lista. Aquí está la salida para el fragmento de código anterior:
Conclusión
En este tutorial, hemos visto que Scikit-Learn facilita el trabajo con varios algoritmos de aprendizaje automático. Hemos visto ejemplos de Regresión, Clasificación y Agrupamiento. Scikit-Learn aún está en fase de desarrollo y está siendo desarrollado y mantenido por voluntarios, pero es muy popular en la comunidad. Ve y prueba tus propios ejemplos.
Source:
https://www.digitalocean.com/community/tutorials/python-scikit-learn-tutorial