#plot #julia
#сюжет #джулия
Вопрос:
Я хочу создать контурный график пространства потерь для довольно простой регрессии. Всякий раз, когда я иду на построение пространства, мой сеанс умирает. Есть ли что-то, что я делаю неправильно, или мне нужно затруднить установку съемки? (только что установлен пару дней назад, но раньше не использовал Julia)
using Plots, DataFrames, StatsPlots, Statistics, LinearAlgebra
f(t) = t.^2
c(θ₁, θ₂) = sum(f(t)-θ₁*t-θ₂*t.^2)
t = LinRange(0,1,20) |> collect
θ₁ = LinRange(-3,2,100) |> collect
θ₂ = LinRange(-1,3.5,100)|> collect
X = [t t.^2]
θ = [θ₁ θ₂]
yhats = X * transpose(θ)
ytrue = t.^2
e = yhats .- ytrue
tse = sum(e.^2, dims=1)
contour(θ[:,1],θ[:,2], tse)
Комментарии:
1. Ваш пример выдает ошибку для меня:
Arrays have incorrect length or dimension
, но не завершает сеанс, так что, похоже, это проблема с вашей установкой. В качестве отступления обратите внимание, что вам не обязательно бытьusing Plots, StatsPlots
, посколькуStatsPlots
реэкспортируетсяPlots
. И я считаюcountour
, что это стандартноPlots
, поэтому вы могли бы отказатьсяStatsPlots
от этого.2. Кроме того, не используйте
collect
. Вам практически никогда не нужно использоватьcollect
, поскольку диапазоны ведут себя как массивы (на самом деле они являются массивами). Просто удалите|> collect
детали и забудьте, о чем вы когда-либо слышалиcollect
(пока что-то действительно не перестанет работать.)3. Я удалил Джулию и папки, переустановил ее, установил только графики и все равно столкнулся с той же проблемой… Я не уверен, почему должна быть ошибка, потому что все они являются векторами 100×1… Могу ли я получить немного больше помощи в устранении неполадок или выяснении того, что происходит не так?
4. Похоже, что третий аргумент
contour
должен быть либо двумерной функцией, либо матрицей. Похоже, что ваш код предоставляет вектор для третьего аргумента.