(2)Linear Regression with Multiple Variables

Machine Learning系列,转载自

http://blog.csdn.net/xuexiang0704/article/details/8867992


以下内容源自coursera上的machine learning,同时参考了Rachel-Zhang的博客(http://blog.csdn.net/abcjennifer)



上一节讲了只有一个特征的情况,下面聊聊多特征的。

(一):多特征的例子以及多特征的的cost function和得到的函数h





(二):单特征和多特征的梯度算法的比较:







(三):应用梯度算法时的小技巧









(四):如何选取特征和模型函数?

有时候并不是特征越多效果就越好,我们可以考虑特征A和特征B相乘作为一个新的特征,或者特征C和特征D相除作为一个新特征等等之类的。但是需要在理论上合理。另外在建立模型是,可以选择三次,二次,甚至开方,我们在刚建模型的时候,都可以尝试,但需要在理论上说的过去,比如房价几乎只会随着面积的增大而增大,不可能减小,即这个时候某些二次函数就不适合,因为会降低,而三次函数就更可能建立起一个更好的预测模型!

 

当然需要格外注意归一化问题,因为平方开方三次方会导致数据相差很大!



(五):Normal Equation : method to solve for theta  analytically这时没必要用feature scaling)


至于为什么这样一个公式就搞定了呢?

请参考:http://cs229.stanford.edu/notes/cs229-notes1.pdf  (P7-P11)


(请注意,在使用normal equation的时候,在使用公式可能会有不可逆的情况:此时可以尝试减少特征数!还有一点在特征数目很大的情况下(比如n》10000,需格外注意normal equation的效率!)





(六):gradient descent和normal equation的对比

后者的适用范围没有前者广,在特征数目比较少的情况下,normal equation比较方便,因为不需要选取学习速率,不需要迭代。但在特征数目n比较大的情况下,normal equation就比较耗时(因为求逆的时间)(n=1000是,对于当代计算机还是很轻松的,但当n=10000是就需要考虑了)。而gradient decent在即使n很大的情况下也可以比较快的计算出最后结果!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 今天是2020年6月2日。多元线性回归的代码是: from sklearn.linear_model import LinearRegression X = [[0, 1], [5, 1], [15, 2], [25, 5], [35, 11], [45, 15], [55, 34], [60, 35]] y = [4, 5, 20, 14, 32, 22, 38, 43] model = LinearRegression().fit(X, y) r_sq = model.score(X, y) print('coefficient of determination:', r_sq) print('intercept:', model.intercept_) print('slope:', model.coef_) ### 回答2: 多元线性回归是一种统计分析方法,它通过使用多个自变量来预测一个连续的因变量。在多元线性回归中,我们需要编写代码来估计自变量的系数,并使用这些系数来预测因变量的值。 编写多元线性回归代码的一种常见方法是使用最小二乘法。最小二乘法通过最小化预测值与实际值之间的残差平方和来估计自变量的系数。以下是一个使用最小二乘法进行多元线性回归的示例代码: ``` import numpy as np def multiple_linear_regression(X, y): # Add a column of ones to X to account for the intercept term X = np.concatenate((np.ones((X.shape[0], 1)), X), axis=1) # Calculate the coefficients using the normal equation coefficients = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y) return coefficients # Example usage X = np.array([[1, 2], [3, 4], [5, 6]]) # Input features y = np.array([10, 20, 30]) # Target variable coefficients = multiple_linear_regression(X, y) print(coefficients) ``` 在这个例子中,我们传递了一个输入特征矩阵X和目标变量向量y。函数`multiple_linear_regression`首先向X添加一个全为1的列,以考虑截距项。然后,它使用最小二乘法计算自变量的系数,并返回结果。 在这个例子中,自变量有2个特征,并且我们希望预测一个连续的因变量。最终,代码将打印出自变量的系数。该系数可以用于预测新的因变量值。 ### 回答3: 多元线性回归是一种用于建立一个或多个自变量与一个因变量之间的关系的统计模型。它通过拟合一个多元线性方程来预测因变量的值。多元线性回归的代码实现可以分为以下几个步骤: 1. 数据准备:首先需要准备一组包含自变量和因变量的数据集。这些数据应该是经过清洗和处理的,确保没有缺失值和异常值。 2. 特征选择:在构建多元线性回归模型之前,通常需要进行特征选择,即选择对因变量有较强影响的自变量。可以使用相关性分析或者其他特征选择方法来确定自变量。 3. 模型建立:通过拟合多元线性回归模型来寻找自变量与因变量之间的关系。可以使用统计软件包中提供的多元线性回归函数进行拟合,或者手动编写代码实现。 4. 模型评估:使用适当的评估指标(如R方值、均方误差等)来评估模型的拟合程度和预测准确性。可以通过交叉验证等方法来验证模型的泛化能力。 5. 模型应用:利用训练好的多元线性回归模型进行预测和推断。可以使用待预测样本的自变量输入到模型中,得到对应的因变量预测值。 6. 模型改进:根据模型评估的结果,可以进一步进行模型优化和参数调整,以提高模型的预测精度和泛化能力。 总而言之,多元线性回归的代码实现需要进行数据准备、特征选择、模型建立、模型评估、模型应用和模型改进等步骤,通过这些步骤可以得到一个用于预测因变量的多元线性回归模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值