【发布时间】:2018-04-08 19:32:17
【问题描述】:
首先,这个论坛上的问题与这个问题非常相似,但相信我没有匹配项,所以请不要重复。
我遇到了两种使用 scikit 的 sklearn 进行线性回归的方法,但我无法理解两者之间的区别,尤其是在第一个代码中调用了一个方法 train_test_split() 而在另一个直接调用 fit 方法的情况下。
我正在使用多种资源进行学习,而这个单一的问题让我非常困惑。
首先使用 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() 之间的区别
【问题讨论】:
-
我建议你使用 kaggle 数据集并运行这两个数据集。每次将训练的行数更改为有效数字。您也会看到速度上的差异。我相信许多其他参数会有所不同。
标签: machine-learning scikit-learn regression python-3.5 sklearn-pandas