gpt4 book ai didi

python - sklearn LinearDiscriminantAnalysis 中的先验顺序

转载 作者:行者123 更新时间:2023-12-04 15:01:01 27 4
gpt4 key购买 nike

我正在使用 here 中的股市数据 (Smarket.csv) 拟合线性判别分析模型.我正在尝试使用 Lag1Lag2 列预测 DirectionDirection 有两个值:UpDown

这是我的可重现代码和结果:

import pandas as pd
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

url="https://raw.githubusercontent.com/JWarmenhoven/ISLR-python/master/Notebooks/Data/Smarket.csv"
Smarket=pd.read_csv(url, usecols=range(1,10), index_col=0, parse_dates=True)

X_train = Smarket[:'2004'][['Lag1', 'Lag2']]
y_train = Smarket[:'2004']['Direction']


LDA = LinearDiscriminantAnalysis()
model = LDA.fit(X_train, y_train)

print(model.priors_)
[0.49198397 0.50801603]

我如何知道哪个先验值对应于哪个类(UpDown)?我看着 documentation但似乎什么都没有。

谁能给我解释一下,或者给我指出解释这个问题的资源?

最佳答案

虽然我无法在文档中找到明确的引用(我确定在某处有一个通用的引用),但在这种情况下,类是按字母顺序排序的,即。在您的情况下,它是 ['Down', 'Up']

您可以很容易地验证这与您在此处的结果一致;因为 priors_ 属性只是通过 priors 参数传递,根据 documentation , 只是从训练数据中推断出的类别比例(当 priors=None 时,就像这里一样):

y_train.value_counts(normalize=True)

给出:

Up      0.508016
Down 0.491984
Name: Direction, dtype: float64

model.priors_[0] == (y_train.value_counts(normalize=True)['Down']
# True
model.priors_[1] == (y_train.value_counts(normalize=True)['Up']
# True

关于python - sklearn LinearDiscriminantAnalysis 中的先验顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66930904/

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