采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在逻辑回归中,wx+b=0就是决策边界,要调整准确率就是调整等号右边的数值,这个很容易可以实现对于决策边界的人为调整。但是在svm中,我们可以很容易的求出准确率召回率,但是我看的资料上说,通过拉格朗日变换之后,实际上最后sklearn中fit()之后存储的是alpha值,这样的话,我们怎么去调整精准率和召回率呢
其实所有的算法,调整精准率和召回率的原理是一样的。近乎所有的算法,都是对于每一个数据点,计算了一个值,通常称为“决策值”,让这个决策值,和一个threshold作比较。调整精准率召回率,就是要调整这个threshold。
对于scikit-learn中的svc,调用decision_function可以获得这个决策值。当有了这个决策值,你就可以通过precision_recall_curve方法,获得对于不同的threshold,相应的精准率,召回率是多少。你就可以根据你期待的标准,找到你需要的那个threshold。
最终,要应用这个threshold,我们只需要在预测的时候,计算待预测数据的decision_function的值,然后根据你设定的threshold进行分类就好了(而不是直接调用predict)。比如我们将获得的待预测数据集的decision_function的存在y_scores中,之后,只要再通过下面的我们自定义的决策分类函数就好了:
def adjusted_classes(y_scores, t): """ y_scores存储数据集的决策值,t为决策阈值。返回分类结果。 """ return [1 if y >= t else 0 for y in y_scores]
加油!:)
好的,还要多加练习,东西真的好多
我这个视频看完了,打算买你的线性代数视频,我问一下线性代数的视频会对机器学习有帮助吗??
抱歉,我不确定你的水平,也不敢肯定是否肯定对于你来说对你深入理解机器学习有帮助。我只能说我的课程系统讲解了工科学生所需要的线性代数基础,并且结合了编程。我印象里你已经整体复习过一遍线性代数,通过你的问题,我认为你的基础也不错,所以可能你并不需要那个课程。那个课程正在更新中,更新较慢,你也可以等待一下更新,整体看一下课程目录的内容,是否是你需要的。加油!
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
2.9k 15
1.6k 15
1.4k 14