#  算法之星-机器大脑
- Switch to [English Document](https://github.com/BeardedManZhao/algorithmStar/blob/main/README.md)
- 知识库
AS机器学习库提供了一个针对机器学习各种算法的Java
API,其具有机器视觉与自然语言处理等复杂计算逻辑的封装,通过库可以快速使用各种算法,实现各种效果。AS库中的诸多计算操作是采用的原生实现,能够在没有Java标准库意外依赖就可以实现库函数的运行。
AS库目录有多个版本,如果希望查询不同版本的更新日志以及差异,您可以在这里进行[查阅](https://github.com/BeardedManZhao/algorithmStar/tree/master/src_code/update)。
在本仓库中提供了一个[测试数据集](https://github.com/BeardedManZhao/algorithmStar/blob/master/sourceMaterial.md),在数据集中包含各种图像等数据文件,您可以通过URL将这些测试数据拉取到本地程序中进行计算。
## 通知
> ⚠️【重要】 1.32 版本和 1.40 版本的内容几乎一致,主要的区别就是包模块的变更, 请注意,我们将在 1.40 版本以及之后的所有版本中
> 重构包名为 `io.github.beardedManZhao.algorithmStar` 这是为了避免在 Java 的诸多依赖中,包名出现冲突的情况~
>
> 为了避免小伙伴们担心由于包更新导致的兼容性问题,因此我们提供了 1.32
> 版本,您可以继续使用旧包名,但是我们强烈建议您使用新版本,因为新版本的包名已经更新为 `io.github.beardedManZhao.algorithmStar`
> ,若您对于修改包名称和更新有什么问题或建议,请及时联系我们!!
## Maven 依赖
您可以通过maven将算术之星(AS-MB)集成到您的项目中,maven的配置如下所示。您可以将其添加到maven项目中,也可以从Releases下载并手动将其集成到项目中。
```xml
io.github.BeardedManZhao
algorithmStar
1.43
```
### AS库的所需依赖
在1.17版本之后,AS库的所有依赖被剥离,更好避免依赖的捆绑问题,减少项目发生冲突的可能性,同时也可以按照开发者的需求使用更加适合的依赖配置项,您可以在这里查看到AS库所依赖的第三方库依赖。
#### 必选依赖项
> 注意:log4j2 在 1.43 以及以后的版本中不需要导入了!!!为了增强性能,1.43 版本中将log4j2 移除!
AS库在进行诸多计算函数的时候会产生一些日志数据,因此AS库的使用需要导入日志依赖项,这个依赖项是必不可少的,请按照如下的方式导入依赖。
```xml
org.apache.logging.log4j
log4j-slf4j-impl
2.20.0
org.apache.logging.log4j
log4j-api
2.20.0
org.apache.logging.log4j
log4j-core
2.20.0
```
#### 可选依赖项
AS库在针对数据库,Spark等各种平台对接的时候,需要使用到第三方依赖程序包,这些包是可选的,如果您不需要使用这些功能,您可以不去导入依赖,如果您需要,可以参考下面的配置。
```xml
mysql
mysql-connector-java
8.0.30
org.apache.spark
spark-core_2.12
3.4.0
org.apache.spark
spark-sql_2.12
3.4.0
org.apache.spark
spark-mllib_2.12
3.4.0
com.github.sarxos
webcam-capture
0.3.12
org.apache.hadoop
hadoop-client
3.3.1
```
## API使用示例
### 下载所有帮助文档
您可以在加载好 AS 库之后,使用下面的代码将所有帮助文档下载到本地,其中有一些示例代码,引导您进行使用,您可以根据自己的需求进行修改。
```java
package io.github.beardedManZhao.algorithmStar;
import io.github.beardedManZhao.algorithmStar.core.AlgorithmStar;
import io.github.beardedManZhao.algorithmStar.core.HelpFactory;
public class MAIN1 {
public static void main(String[] args) {
// 获取帮助信息工厂类
final HelpFactory helpFactory = AlgorithmStar.helpFactory();
// 下载帮助文档 到 C:\Users\zhao\Desktop\fsdownload 目录中
helpFactory.saveHelpFile(HelpFactory.ALL, "C:\\Users\\zhao\\Desktop\\fsdownload");
}
}
```
### 特征计算算法组件
特征计算组件常用于特征工程,是机器学习任务中计算时的主力军,度量算法,分类算法等皆可以使用这种组件计算方式。在算法之星中的特征工程计算,就是基于组件的计算,您可以直接获取到组件对象,并调用组件函数,也可以使用算术之星的门户类进行特征工程。
接下来就是展示的使用算法之星门户类进行特征工程计算的简单示例.
```java
package io.github.beardedManZhao.algorithmStar;
import io.github.beardedManZhao.algorithmStar.algorithm.distanceAlgorithm.EuclideanMetric;
import io.github.beardedManZhao.algorithmStar.algorithm.distanceAlgorithm.ManhattanDistance;
import io.github.beardedManZhao.algorithmStar.algorithm.featureExtraction.WordFrequency;
import io.github.beardedManZhao.algorithmStar.core.AlgorithmStar;
import io.github.beardedManZhao.algorithmStar.operands.matrix.ColumnIntegerMatrix;
public final class MAIN1 {
public static void main(String[] args) {
// 准备两个文本组成的数组,其中是两个需要被处理成为特征向量的字符串语句。
String[] data = {
"Good evening, dear, don't forget the agreement between us. It's 9:00 tomorrow morning.",
"Good morning, dear, don't forget the agreement between us, at 9:00 in the morning."
};
AlgorithmStar