gpt4 book ai didi

machine-learning - LinearRegression 和 svm.SVR 之间的区别(内核 ="linear")

转载 作者:行者123 更新时间:2023-11-30 08:25:42 25 4
gpt4 key购买 nike

首先,这个论坛上有一些与此非常相似的问题,但相信我没有匹配的问题,所以请不要重复。

我遇到过两种使用 scikit 的 sklearn 进行线性回归的方法,但我无法理解两者之间的区别,特别是在第一个代码中调用了一个方法 train_test_split() ,而在另一个代码中调用了直接拟合方法。

我正在使用多种资源进行学习,这个问题让我感到非常困惑。

第一个使用SVR的

X = np.array(df.drop(['label'], 1))

X = preprocessing.scale(X)

y = np.array(df['label'])

X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.2)

clf = svm.SVR(kernel='linear')

clf.fit(X_train, y_train)

confidence = clf.score(X_test, y_test)

第二个是这个

# Split the data into training/testing sets
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]

# Split the targets into training/testing sets
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]

# Create linear regression object
regr = linear_model.LinearRegression()

# Train the model using the training sets
regr.fit(diabetes_X_train, diabetes_y_train)

# Make predictions using the testing set
diabetes_y_pred = regr.predict(diabetes_X_test)

所以我的主要关注点是使用 svr(kernel="linear") 和使用 LinearRegression() 之间的区别

最佳答案

cross_validation.train_test_split:将数组或矩阵拆分为随机训练和测试子集。

在第二个代码中,分割不是随机的。

svm.SVR:支持向量回归 (SVR) 使用与 SVM 相同的原理进行分类,只有一些细微的差别。首先,由于输出是实数,因此预测手头的信息变得非常困难,而手头的信息具有无限的可能性。在回归的情况下,公差裕度 (epsilon) 设置为近似于问题中已要求的 SVM。但除了这个事实之外,还有一个更复杂的原因,算法比较复杂所以需要考虑。然而,主要思想始终是相同的:为了最小化误差,个性化超平面以最大化边距,并记住部分误差是可以容忍的。

线性回归:在统计学中,线性回归是一种线性方法,用于对标量因变量 y 和一个或多个表示为 X 的解释变量(或自变量)之间的关系进行建模。解释变量称为简单线性回归。

引用: https://cs.adelaide.edu.au/~chhshen/teaching/ML_SVR.pdf

关于machine-learning - LinearRegression 和 svm.SVR 之间的区别(内核 ="linear"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46970888/

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