gpt4 book ai didi

machine-learning - 如何将字典提供给 Julia 中的 Flux 模型

转载 作者:行者123 更新时间:2023-11-30 09:03:47 31 4
gpt4 key购买 nike

所以我有一个 20000x4 的数据集,其中 4 列有字符串。第一个是描述,其他三个是类别,最后一个是我希望预测的。我对第一列的每个单词进行标记并将其保存在字典中,并使用其各自的 Int 值,并将其他列更改为具有数值。现在我很难理解如何在 Flux 模型中提供这些数据。

根据文档,我必须使用“数据集合进行训练(通常是一组输入 x 和目标输出 y)”。在示例中,它将数据 xy 分开。但是我怎样才能用字典加两个数字列来实现呢?

编辑:

这是我现在拥有的一个最小示例:

using WordTokenizers
using DataFrames

dataframe = DataFrame(Description = ["It has pointy ears", "It has round ears"], Size = ["Big", "Small"], Color = ["Black", "Yellow"], Category = ["Dog", "Cat"])

dict_x = Dict{String, Int64}()
dict_y = Dict{String, Int64}()

function words_to_numbers(data, column, dict)
i = 1
for row in range(1, stop=size(data, 1))
array_of_words = tokenize(data[row, column])
for (index, word) in enumerate(array_of_words)
if haskey(dict, word)
continue
else
dict[word] = i
i += 1
end
end
end
end

function categories_to_numbers(data, column, dict)
i = 1
for row in range(1, stop=size(data, 1))
if haskey(dict, data[row, column])
continue
else
dict[data[row, column]] = i
i += 1
end
end
end

words_to_numbers(dataframe, 1, dict_x)
categories_to_numbers(dataframe, 4, dict_y)

我想使用 dict_x 和 dict_y 作为 Flux 模型的输入和输出

最佳答案

考虑这个例子:

using DataFrames

df = DataFrame()
df.food = rand(["apple", "banana", "orange"], 20)

multiplier(fruit) = (1 + (0.1 * rand())) * (fruit == "apple" ? 95 :
fruit == "orange" ? 45 : 105)
foodtoken(f) = (fruit == "apple" ? 0 : fruit == "orange" ? 2 : 3)

df.calories = multiplier.(df.food)
foodtoken(f) = (fruit == "apple" ? 0 : fruit == "orange" ? 2 : 3)

fooddict = Dict(fruit => (fruit == "apple" ? 0 : fruit == "orange" ? 2 : 3)
for fruit in df.food)

现在我们可以将标记数值添加到数据帧中:

df.token = map(x -> fooddict[x], df.food)

println(df)

现在您应该能够使用 df.token 作为输入、df.calories 作为输出来运行预测。

========== 发布更多代码后的附录:===========

通过修改后的示例,您只需要一个辅助函数:

function colvalue(s, dict)
total = 0
for (k, v) in dict
if occursin(k, s)
total += 10^v
end
end
total
end


words_to_numbers(dataframe, 1, dict_x)
categories_to_numbers(dataframe, 4, dict_y)

dataframe.descripval = map(x -> colvalue(x, dict_x), dataframe.Description)
dataframe.catval = map(x -> colvalue(x, dict_y), dataframe.Category)

println(dataframe)

关于machine-learning - 如何将字典提供给 Julia 中的 Flux 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58054698/

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