До сих пор вы, должно быть, устанавливали пакеты Python с помощью одной команды, такой как pip3 install ‹package_name›. Но задумывались ли вы когда-нибудь, как загружаются пакеты, и мы можем установить их удаленно? Если вы не полностью осведомлены о процессах, то это подходящее место для вас.

Прежде чем продолжить, создайте учетную запись на https://pypi.org/account/register/. pypi действует как репозиторий, куда загружаются все пакеты python.

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

В случае линейной регрессии модель пытается провести наиболее подходящую линию на плоскости для всех точек данных. Вот изображение для иллюстрации из википедии

как показано выше, красная линия — это фактическая линия, которую модель пытается нарисовать на основе доступных точек данных. Очевидно, что линия не идеальна, поэтому мы рассматриваем наиболее подогнанную.

Если мы рассмотрим это математически, простейшим уравнением будет y=wx+b, где «x» — независимая переменная, «w» — вес, а «b» — смещение. Точно так же, если x имеет несколько функций, уравнение будет немного изменено. Итак, для «iᵗʰ -размерный»,
y = W₁X₁ + W₂X₂ + W₃X₃ + …… W ᵢX ᵢ + B

Чтобы найти лучшие «W» и «B», уравнение оптимизации должно быть
w = w - r * (dL / dw), где «r» — скорость обучения, а L = функция потерь
и, b= ​​b - r*(dL/dw)

Теперь фактическое значение равно 'y', а соответствующее прогнозируемое значение равно 'ŷ'где
ŷ = W*X + B.
Ошибка = у - (W*X + B).
Чтобы избежать значения -ve , мы можем взять квадратное значение.
L = (y — (W*X + B))².
и dL/dW = 2*(y — (W*X + B))*(-X)
и dL/dB = 2*(y — (W*X + B))*(-1)

Мы применим ту же концепцию и запишем код Python.

Сначала подготовьте структуру каталогов,
i) 'my_packages'являетсяродительским каталогом.
ii) внутри ' my_packages'у нас есть другой каталог как 'regrsn'. Для ясности мы также сохраним конечное имя пакета как «regrsn». Вы можете выбрать другое имя, но это может создать путаницу при импорте пакетов. Имя пакета также должно быть уникальным.
iii) в разделе 'my_packages' у нас также есть файл LICENSE & README и файл setup.py
iv) Внутри 'my_packages/ regrsn/' у нас есть настоящие файлы python 'lnregrsn.py' и пустой файл '__init__.py'.
Мы обсудим один из них один

В файле «lnregrsn.py» у нас есть код Python для линейной регрессии.

__init.py__ требуется в каждом каталоге всякий раз, когда используется пакет. Хотя его можно оставить пустым. Поскольку в нашем случае у нас есть только один модуль, нам нужно хранить его внутри каталога regrsn.

В setup.py должна быть записана вся информация, связанная с пакетом, здесь не забудьте обновить поле имени.

В файле LICENSE должна быть указана вся информация, связанная с лицензией, а пользовательские сообщения должны быть упомянуты в файле README.md.

Теперь мы почти закончили, и пришло время подготовить окончательные пакеты. для этого из терминала выполнить,
python setup.py sdist bdist_wheel

при выполнении этого каталог dist будет создан автоматически, поэтому загрузите его в pypi, используя
twine upload dist/*

он запросит имя пользователя и пароль, введите свои данные, и все готово. Если брелок не установлен, загрузка не будет работать. В этом случае установите
pip install keyring==21.4.0

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

Чтобы использовать этот пакет, мы можем импортировать, как показано ниже,
из regrsn.lnregrsn импортировать линейную регрессию как lnr

а к методам можно получить доступ как,
lnr.calculate_weight(x,y).

ПРИМЕЧАНИЕ. Настоятельно не рекомендуется использовать pypi для загрузки в целях тестирования. Для этого используйте https://pypi.org/project/testPy/.

Ссылки:
[1] https://www.freecodecamp.org/news/build-your-first-python-package/