Рубрики
Без рубрики

Почему библиотека Scikit-Sulect использует Craining Convection Convention для имени атрибутов?

Если вы использовали библиотеку Sklearn в своем собственном коде, вы, возможно, поняли, что все атрибуты совершаются суффиксируемыми подчеркиванием. Вот пример алгоритма K-означает: ## зависимости от Sklearn.Cluster ImportmeMepment Import Numpy в качестве NP ## данных (рабочая работа (HH) / зарплата зарплаты ($)). Массив ([[[[35, 7000]). 45, 6900], … почему библиотека Scikit-Sulect использует трейлинг подчеркивание имен атрибутов? Подробнее “

Автор оригинала: Chris.

Если вы использовали библиотеку Sklearn в своем собственном коде, вы, возможно, поняли, что все атрибуты совершаются суффиксируемыми подчеркиванием. Вот пример алгоритма K-означает:

## Dependencies
from sklearn.cluster import KMeans
import numpy as np


## Data (Work Work (hh) / Salary Salary ($))
X = np.array([[35, 7000], [45, 6900], [70, 7100],  
              [20, 2000], [25, 2200], [15, 1800]])


## One-liner
kmeans = KMeans(n_clusters=2).fit(X)  


## Result & puzzle
cc = kmeans.cluster_centers_
print(cc)
'''
[[  50. 7000.]
 [  20. 2000.]]
'''

Во второй последней линии мы использовали kmeans атрибут cluster_centers_ Отказ Почему библиотека Sklearn не использует имя атрибута cluster_centers ?

«Краткий ответ, конечный подчеркивание ( kmeans.cluster_centers_ ) в атрибутах класса – это конвенция Scikit-Suart для обозначения« оценочных »или« установленных »атрибутов. ( Источник )

Таким образом, подчеркивание просто указывает на то, что атрибут был оценен от данных.

Документация Sklearn Очень понятно об этом:

«Атрибуты, которые были оценены от данных, должны всегда иметь имя, заканчивая отводным подчерком, например, коэффициенты некоторых оценщиков регрессии будут храниться в Coef_ атрибут после соответствовать был назван.

Это очень полезно для вас, потому что вы сразу же знаете, что эти атрибуты были установлены в этапе обучения алгоритма (а не в инициализаторе и т. Д.). Таким образом, вы можете легко определить, что модель не была обучена, проверяя атрибуты с помощью трейлинга подчеркивания:

## Dependencies
from sklearn.cluster import KMeans
import numpy as np


## Data (Work Work (hh) / Salary Salary ($))
X = np.array([[35, 7000], [45, 6900], [70, 7100],  
              [20, 2000], [25, 2200], [15, 1800]])

## One-liner
kmeans = KMeans(n_clusters=2)

cc = kmeans.cluster_centers_
print(cc)
'''
Traceback (most recent call last):
  File "C:\Users\xcent\Desktop\code.py", line 13, in 
    cc = kmeans.cluster_centers_
AttributeError: 'KMeans' object has no attribute 'cluster_centers_'
'''

Вы можете увидеть, что не вызывая Fit () Функция, нет cluster_centers_ атрибут, пока. Вместо этого он создан динамически как Fit () выполняется.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/why-does-the-scikit-learn-library-use-a-trailing-underscore-convention-for-attribute-names/”