ruby-on-rails - 如何计算多对多模型的特征向量?
问题描述
我有一个表示依赖图的多对多模型。如何计算该图的特征向量?
有一个关系模型:
class Relation < ApplicationRecord
belongs_to :dependency, class_name: "Article"
belongs_to :dependent, class_name: "Article"
end
和一个关系表:
create_table "relations", force: :cascade do |t|
t.integer "dependency_id"
t.integer "dependent_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.index ["dependency_id", "dependent_id", "user_id"], name: "index_relations_on_dependency_id_and_dependent_id_and_user_id", unique: true
t.index ["dependency_id"], name: "index_relations_on_dependency_id"
t.index ["dependent_id"], name: "index_relations_on_dependent_id"
t.index ["user_id"], name: "index_relations_on_user_id"
end
解决方案
也许使用 Ruby 的 Matrix::EigenvalueDecomposition 类?
m = Matrix[ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
Matrix::EigenvalueDecomposition.new(m).eigenvalues
=> [16.116843969807057, -1.1168439698070447, -8.046297179356069e-16]
Matrix::EigenvalueDecomposition.new(m).eigenvectors
=> [Vector[0.23197068724628633, 0.5253220933012341, 0.8186734993561815], Vector[0.8169642040610365, 0.09018835790853766, -0.6365874882439635], Vector[0.40824829046386324, -0.8164965809277259, 0.40824829046386263]]
请参阅 https://docs.ruby-lang.org/en/2.5.0/Matrix/EigenvalueDecomposition.html
推荐阅读
- python - 谷歌云运行和网页抓取与硒
- javascript - Javascript Data Manipulation Inefficiency
- php - How to not select duplicated row when primary key is used in the same table?
- python - 有什么方法可以右键单击 Tkinter 列表框中的项目吗?
- c# - Outlook 加载项错误:由于邮件已更改,无法执行操作
- cmd - 为什么安装 Kivy 时 Cmd 显示错误?
- zabbix - 如果触发器在 zabbix 中第三次重复,则发送通知
- ansible - Ansible 从清单文件中获取主机的公共 IP
- c# - 根据字节大小将列表分批
- angular - NgRx StoreModule.forRoot - 在没有根级减速器时指定元减速器