После поиска в Интернете относительно мало людей используют Java для простого анализа данных. Большинство из них используют встроенные библиотеки или сторонние библиотеки, представленные языками Python и Scala. В Java очень мало введений, поэтому я хотел написать несколько подробных введений, чтобы представить анализ данных в области Java.
Apache Commons — это проект Apache Software Foundation, ранее входивший в состав проекта Jakarta. Целью Commons является предоставление многоразового кода Java с открытым исходным кодом. Все они связаны с Apache ФондASF,Foundation создает и поддерживает повторно используемые компоненты Java.,Использование компонентов может повысить эффективность и качество разработки. В проекте Commons,Есть наборы инструментов, с которыми каждый знаком,напримерBeanUtils
、Collections
、Compress
、Crypto
、Email
、Exec
、FileUpload
、IO
、Lang
、Math
、Net
、Validator
ждать。И то, что я хочу объяснить сегодня, этоMath
эта сумка。
Проект Apache Commons состоит из трех частей:
Math3 можно описать как легкий автономный пакет математических и статистических методов расчета, включающий наиболее часто используемые числовые алгоритмы. В проекте Apache Commons math3 — это математическая библиотека, использующая следующие принципы:
1. Реальные варианты использования приложений определяют приоритеты разработки.
2. В этом пакете упор делается на небольшие, простые в интеграции компоненты, а не на большие библиотеки со сложными зависимостями и конфигурацией.
3. Все алгоритмы полностью документированы и соответствуют общепринятым лучшим практикам.
4. При наличии нескольких стандартных алгоритмов шаблон стратегии используется для поддержки нескольких реализаций.
5. Ограниченные зависимости. Нет никаких внешних зависимостей, кроме компонентов Commons и базовой платформы Java (как минимум библиотеки версий Java 1.3–1.2, как минимум Java 5, начиная с библиотек версии 2.0).
Текущая стабильная версия — commons-math3.,Тестовая версия — commons-math4-4.0-beta1.,Связанный адрес загрузки:https://commons.apache.org/math/download_math.cgi
На складе Maven версия math3 начинается с 3.0, а последняя версия — 3.6.1. Мы видели официальное представление версии 4.0 и бета-версии. Возможно, в будущем в этой области будут предприняты дополнительные усилия.
существоватьpom.xmlвведено вmath3
Сумка,Вот как я это представил,Просто скопируйте его прямо в XML-файл и используйте maven для автоматической загрузки импортировать.
...
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
...
существоватьgradle.xmlвведено вmath3
Сумка,Вот как я это представил,Просто скопируйте его прямо в XML-файл и используйте maven для автоматической загрузки импортировать.
dependencies {
...
// https://mvnrepository.com/artifact/org.apache.commons/commons-math3
implementation group: 'org.apache.commons', name: 'commons-math3', version: '3.6.1'
...
}
существоватьivy.xmlвведено вmath3
Сумка,Вот как я это представил,Просто скопируйте его прямо в XML-файл и используйте maven для автоматической загрузки импортировать.
...
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 -->
<dependency org="org.apache.commons" name="commons-math3" rev="3.6.1"/>
...
После импорта библиотеки Apache Commons Math 3 вы можете использовать функции библиотеки. Обратите внимание: после настройки вышеуказанных зависимостей убедитесь, что сеть работает нормально, инструменты сборки Gradle или Maven или ivy автоматически загрузят соответствующие библиотеки зависимостей с удаленного компьютера. Центральный репозиторий Maven. В настоящее время я использую Maven для импорта пакета в IDEA.
Ниже приводится структура пакета и краткое введение в math3.,Если вы хотите узнать больше об интерфейсах и реализациях каждого пакета,Пожалуйста, обратитесь кApache Commons math3 3.6.1 APIдокумент。
Математический пакет разделен на множество функциональных подпакетов.,Напримерanalysis、stat、distribution、geometry、ml、optimждать。
org.apache.commons.math3
org.apache.commons.math3.analysis
org.apache.commons.math3.analysis.differentiation
org.apache.commons.math3.analysis.function
org.apache.commons.math3.analysis.integration
org.apache.commons.math3.analysis.integration.gauss
org.apache.commons.math3.analysis.interpolation
org.apache.commons.math3.analysis.polynomials
org.apache.commons.math3.analysis.solvers
org.apache.commons.math3.complex
org.apache.commons.math3.dfp
org.apache.commons.math3.distribution
org.apache.commons.math3.distribution.fitting
org.apache.commons.math3.exception
org.apache.commons.math3.exception.util
org.apache.commons.math3.filter
org.apache.commons.math3.fitting
org.apache.commons.math3.fitting.leastsquares
org.apache.commons.math3.fraction
org.apache.commons.math3.genetics
org.apache.commons.math3.geometry
org.apache.commons.math3.geometry.enclosing
org.apache.commons.math3.geometry.euclidean.oned
org.apache.commons.math3.geometry.euclidean.threed
org.apache.commons.math3.geometry.euclidean.twod
org.apache.commons.math3.geometry.euclidean.twod.hull
org.apache.commons.math3.geometry.hull
org.apache.commons.math3.geometry.partitioning
org.apache.commons.math3.geometry.partitioning.utilities
org.apache.commons.math3.geometry.spherical.oned
org.apache.commons.math3.geometry.spherical.twod
org.apache.commons.math3.linear
org.apache.commons.math3.ml
org.apache.commons.math3.ml.clustering
org.apache.commons.math3.ml.clustering.evaluation
org.apache.commons.math3.ml.distance
org.apache.commons.math3.ml.neuralnet
org.apache.commons.math3.ml.neuralnet.oned
org.apache.commons.math3.ml.neuralnet.sofm
org.apache.commons.math3.ml.neuralnet.sofm.util
org.apache.commons.math3.ml.neuralnet.twod
org.apache.commons.math3.ml.neuralnet.twod.util
org.apache.commons.math3.ode
org.apache.commons.math3.ode.events
org.apache.commons.math3.ode.nonstiff
org.apache.commons.math3.ode.sampling
org.apache.commons.math3.optim
org.apache.commons.math3.optim.linear
org.apache.commons.math3.optim.nonlinear.scalar
org.apache.commons.math3.optim.nonlinear.scalar.gradient
org.apache.commons.math3.optim.nonlinear.scalar.noderiv
org.apache.commons.math3.optim.nonlinear.vector
org.apache.commons.math3.optim.nonlinear.vector.jacobian
org.apache.commons.math3.optim.univariate
org.apache.commons.math3.optimization
org.apache.commons.math3.optimization.direct
org.apache.commons.math3.optimization.fitting
org.apache.commons.math3.optimization.general
org.apache.commons.math3.optimization.linear
org.apache.commons.math3.optimization.univariate
org.apache.commons.math3.primes
org.apache.commons.math3.random
org.apache.commons.math3.special
org.apache.commons.math3.stat
org.apache.commons.math3.stat.clustering
org.apache.commons.math3.stat.correlation
org.apache.commons.math3.stat.descriptive
org.apache.commons.math3.stat.descriptive.moment
org.apache.commons.math3.stat.descriptive.rank
org.apache.commons.math3.stat.descriptive.summary
org.apache.commons.math3.stat.inference
org.apache.commons.math3.stat.interval
org.apache.commons.math3.stat.ranking
org.apache.commons.math3.stat.regression
org.apache.commons.math3.transform
org.apache.commons.math3.util
Дистрибутив должен иметь реализации общих дискретных и непрерывных дистрибутивов. Это коллекция некоторых из наиболее часто используемых алгоритмов в этом пакете, а также последующие реализации.
Пакет анализа используется для общих процедур численного анализа, включая поиск корня, функциональную интерполяцию и интегрирование.
Комплексный пакет в основном используется для реализации сложных числовых типов и сложных трансцендентных функций.
Этот пакет легче понять, поскольку он хранит некоторые классы обработки алгоритмов ошибок.
Пакет фильтров также является очень часто используемым фильтром.
подгонка — это пакет подгонки кривой, который включает в себя алгоритмы минимизации невязки между наблюдаемыми и модельными значениями.
Пакет дробей в основном содержит типы чисел дробей и форматы чисел дробей.
Предоставляет компоненты и реализацию генетических алгоритмов.
Пакет геометрии предоставляет геометрические алгоритмы, включая задачу минимальной замкнутой сферы, создание выпуклой оболочки набора точек в 1D, 2D, 3D и евклидовом пространствах, задачи выпуклой оболочки, деревья разбиения двоичного пространства, многомерные функции сортировки и геометрические компоненты.
Обеспечивает линейную алгебру
Увидев имя пакета, мы действительно сможем его угадать, хотя оно не так мощно, как Python. Базовый пакет алгоритмов машинного обучения, включая оценку кластеров, расчет общего расстояния, нейронную сеть, карту объектов, одно/двумерную нейронную сеть и т. д.
Пакет ODE в основном используется для задач обыкновенных дифференциальных уравнений, несложных задач нормально-разностных уравнений, дискретных событий, шагов обработки выборки при интегрировании общих уравнений и т. д.
Optim в основном касается оптимизатора, проблемы максимального значения и минимального значения.
Пакет primes включает методы, связанные с простыми числами, такие как примитивное тестирование и факторизация.
В пакет Random входят генераторы случайных чисел и случайных данных. Некоторые тестовые данные можно получить здесь.
Пакет stat широко используется в кардинальных научных расчетах, в основном для хранения некоторых данных, манипуляций и подведения итогов. Пакет статистики включает в себя расчеты корреляции/ковариации, сводную статистику, сводную статистику (сводки на основе времени, уровня и т. д.), проверку гипотез, биномиальную оценку, ранжирование и т. д. Это будет освещено в следующем сообщении в блоге.
Transform инкапсулирует реализацию некоторых методов преобразования, включая быстрое преобразование Фурье.
Я считаю, что нет необходимости вводить это, в основном это некоторые математические и статистические инструменты, которые могут удобно использовать разработчики.
В пакете math3 общая структура пакета и структура подпакета представлены выше, а пакеты, представленные ниже, обычно нами не используются.
Общие пакеты — это в основном общие категории, используемые в публичных математических библиотеках.
Этот пакет больше не рекомендуется использовать в версии 3.6.1, поэтому он размещен здесь. Пакет оптимизации включает в себя линейный, подгоночный, кривой, алгоритм минимума и т. д.
В основном чаще используются Бета и Гамма, а две другие категории используются редко.
В этой статье в основном представлены пакеты семейства проектов Commons, а также конкретно представлена архитектура пакета Math, а также классификация и использование некоторых подпакетов. В следующей статье будет подробно объяснено использование классов пакетов и указано, на что следует обратить внимание.
[Цитировать]