You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Smile机器学习库3.0.0导入报错及Scala代码适配咨询

Smile 3.0.0 适配指南(Scala 2.13.10)

关于Attribute、AttributeDataset、NumericAttribute的变化

Smile 3.0.0对核心数据模型做了重大重构,你提到的这几个类确实已被移除:

  • AttributeDataset 被替换为 smile.data.DataFrame(功能类似Pandas的DataFrame,是Smile 3.x的核心数据结构)
  • Attribute、NumericAttribute 的功能被整合到DataFrame的列类型处理逻辑中,不再以单独类的形式暴露

适配后的代码示例

import smile.clustering.KMeans
import smile.data.DataFrame
import smile.read
import smile.util.Strings

// 加载CSV数据为DataFrame
val data: DataFrame = read.csv("data.csv", header = true)

// 拆分数据为均等的两部分(按行随机拆分)
val (data1, data2) = data.split(0.5, Strings.random())

// 将DataFrame转换为K-Means所需的数值矩阵
val matrix1 = data1.toArray(false) // false表示不包含标签列(无标签时可忽略该参数)
val matrix2 = data2.toArray(false)

// 训练K-Means聚类模型
val model1 = KMeans.fit(matrix1, 3)
val model2 = KMeans.fit(matrix2, 3)

关键改动说明

  • 数据载体:用DataFrame替代旧版的AttributeDataset,所有数据读取、处理操作围绕DataFrame展开
  • 数据拆分:新版split方法需要传入随机数生成器实例,Strings.random()可生成默认随机种子保证拆分随机性
  • 矩阵转换:通过toArray()方法将DataFrame转为数值矩阵,参数false用于排除可能存在的标签列(纯特征数据时可省略)

内容的提问来源于stack exchange,提问作者PainPoints

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:40:30