Это вторая часть серии Scikit-learn, которая выглядит следующим образом:
- Часть 1 - Введение
- Часть 2 - Обучение с учителем в Scikit-Learn (эта статья)
- Часть 3 - Обучение без учителя в Scikit-Learn
Ссылка на первую часть: https://medium.com/@deepanshugaur1998/scikit-learn-part-1-introduction-fa05b19b76f1
Ссылка на третью часть: https://medium.com/@deepanshugaur1998/scikit-learn-beginners-part-3-6fb05798acb1
Обучение с учителем в Scikit-Learn
И снова здравствуйте !
Резюме к контролируемому обучению:
В. Что такое обучение с учителем?
В машинном обучении это тип системы, в которой предоставляются как входные, так и желаемые выходные данные. Входные и выходные данные помечаются для классификации, чтобы обеспечить обучающую основу для будущего прогнозирования данных.
Теперь, как и в предыдущей части этой серии, мы уже видели обзор того, что предлагает scikit learn с точки зрения контролируемого обучения, но в этом мы поймем, как начать работу с этой мощной библиотекой.
Начало работы…
давайте рассмотрим пример простой модели линейной регрессии:
Математическая цель этой модели - минимизировать остаточную сумму квадратов между наблюдаемыми ответами в наборе данных и результатами, предсказанными линейным приближением.
from sklearn.linear_model import LinearRegression #import statement clf=LinearRegression() #we created a classifier from an object named LinearRegression. clf.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2]) #fitting a classifier on a data clf.coef_ # calculated the slope OUTPUT : array([ 0.5, 0.5])
Как видите, есть только небольшой код, который поможет вам начать работу с этим удивительным алгоритмом. Разве это не потрясающе? Вы даже можете попробовать сделать прогноз на тестовом наборе с помощью функции «.pred».
Для более глубокого понимания этой линейной модели попробуйте сами на примере.
Простой пример можно найти здесь:
Машины опорных векторов в Sklearn
Следуйте приведенному ниже коду, чтобы начать работу с svm в scikit-learn:
from sklearn import svm X = [[0, 0], [1, 1]] # dataset y = [0, 1] clf = svm.SVC() # classifier is created clf.fit(X, y) # fitting classifier on dataset OUTPUT : SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf', max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False)
Параметры, которые вы видите в скобках, можно изменить в соответствии с предоставленным вам набором данных.
Как только вы научитесь писать вышеупомянутый код, попробуйте сами, настроив параметры.
clf.predict([[1., 0.]]) # predicting values OUTPUT : array([1])
Стохастический градиентный спуск в Sklearn
Алгоритм стохастического градиентного спуска - это простой алгоритм, который используется для дискриминантного обучения линейных классификаторов на большом наборе данных, а также легко вписывается в него.
Код:
from sklearn.linear_model import SGDClassifier X = [[0., 0.], [1., 1.]] y = [0, 1] clf = SGDClassifier(loss=”hinge”, penalty=”l2") #hyperparameters clf.fit(X, y) OUTPUT : SGDClassifier(alpha=0.0001, average=False, class_weight=None, epsilon=0.1, eta0=0.0, fit_intercept=True, l1_ratio=0.15, learning_rate='optimal', loss='hinge', max_iter=5, n_iter=None, n_jobs=1, penalty='l2', power_t=0.5, random_state=None, shuffle=True, tol=None, verbose=0, warm_start=False)
Наивный байесовский в Sklearn
Наивный байесовский классификатор вычисляет вероятности для каждого фактора. Затем он выбирает результат с наибольшей вероятностью.
Этот классификатор предполагает, что функции независимы. Таким образом, используется слово «наивный».
Это один из самых распространенных алгоритмов в машинном обучении.
Код:
from sklearn import datasets iris = datasets.load_iris() # loading the dataset from sklearn.naive_bayes import GaussianNB gnb = GaussianNB() y_pred = gnb.fit(iris.data, iris.target).predict(iris.data) #fitting and predicting on same line. OUTPUT : [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]
Регрессия дерева решений в Sklearn
Деревья решений - это еще один тип контролируемого алгоритма машинного обучения, в котором данные непрерывно разделяются в соответствии с определенным параметром.
Чем больше данных, тем важнее точность модели.
Деревья решений - один из наиболее часто используемых алгоритмов. из всех контролируемых алгоритмов обучения и находит огромное применение в отрасли.
Код:
from sklearn import tree X = [[0, 0], [1, 1]] Y = [0, 1] clf = tree.DecisionTreeClassifier() clf = clf.fit(X, Y) clf.predict([[2., 3.]]) OUTPUT : array([1])
Ансамблевые методы в SkLearn
Он содержит методы упаковки и случайные леса.
Случайные леса
Еще один мощный алгоритм машинного обучения, который дает отличный результат даже без настройки гиперпараметров.
Это также один из наиболее часто используемых алгоритмов из-за его простоты и того факта, что он может использоваться как для задач классификации, так и для задач регрессии.
Код:
from sklearn.ensemble import RandomForestClassifier X = [[0, 0], [1, 1]] Y = [0, 1] clf = RandomForestClassifier(n_estimators=10) clf = clf.fit(X, Y) pred = clf.predict([[2., 3.]]) print(pred) OUTPUT : [1]
Что мы узнали?
К настоящему времени мы узнали, как реализовать каждый контролируемый алгоритм с помощью scikit learn.
Тем не менее, у каждого алгоритма есть много функций в scikit learn, которые можно освоить только на практике.
Так что хватит тратить свое время и голову прямо на официальную документацию scikit learn для контролируемых алгоритмов и убедитесь, что вы понимаете каждый алгоритм математически, а также практикуетесь с разными наборами данных.
Ссылка:
http://scikit-learn.org/stable /supervised_learning.html
Примечание. Следующая часть этой серии будет посвящена обучению без учителя, поэтому не пропустите это.