gpt4 book ai didi

python - 通过 PyCall 在 Julia 中使用 scikit-learn

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:13 26 4
gpt4 key购买 nike

我正在尝试通过 PyCall 在 Julia 中使用 Scikit-learn .

首先,我尝试将虹膜数据读入 Julia 数据结构。

这是Python代码:

from sklearn import datasets
from sklearn.naive_bayes import GaussianNB

iris = datasets.load_iris()

X = iris.data
y = iris.target

PyCall 文档说 Python 方法在 Julia 中被调用,例如:

my_dna[:find]("ACT")

相对于:

my_dna.find("ACT")

在Python中。

我在 Julia 中导入虹膜数据的尝试是:

using PyCall
@pyimport sklearn.datasets as datasets
@pyimport sklearn.naive_bayes as NB

iris = datasets.load_iris()

X = ...?
Y = ...?

iris = datasets.load_iris() 调用起作用,其中 irisDict{Any,Any} 类型。

我不确定这是否正确。我尝试了 iris = datasets[:load_iris] 但结果是:

ERROR: LoadError: MethodError: no method matching getindex(::Module, ::Symbol)

更进一步,我如何将 iris.datairis.target 读取到 XY 中?

最佳答案

正如您所说,Julia 告诉您 iris 是什么类型:

julia v0.5> @pyimport sklearn.datasets as datasets

julia v0.5> @pyimport sklearn.naive_bayes as NB

julia v0.5> iris = datasets.load_iris()
Dict{Any,Any} with 5 entries:
"feature_names" => Any["sepal length (cm)","sepal width (cm)","petal length (…
"target_names" => PyObject array(['setosa', 'versicolor', 'virginica'], …
"data" => [5.1 3.5 1.4 0.2; 4.9 3.0 1.4 0.2; … ; 6.2 3.4 5.4 2.3; 5.…
"target" => [0,0,0,0,0,0,0,0,0,0 … 2,2,2,2,2,2,2,2,2,2]
"DESCR" => "Iris Plants Database\n====================\n\nNotes\n----…

它还告诉您字典中的键是什么。因此,现在您只需使用 Julia 的语法来访问字典中的值(结果已截取):

julia v0.5> X = iris["data"]
150×4 Array{Float64,2}:
5.1 3.5 1.4 0.2
4.9 3.0 1.4 0.2
4.7 3.2 1.3 0.2

julia v0.5> Y = iris["target"]
150-element Array{Int64,1}:
0
0

请注意,我不知道这个问题的答案。我只是让 Julia 指导我该怎么做。

最后,正如 @ChrisRackauckas 所建议的,已经有一个包装 scikit-learn 的 Julia 包:https://github.com/cstjean/ScikitLearn.jl

关于python - 通过 PyCall 在 Julia 中使用 scikit-learn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42823365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com