关于【头歌】线性回归理论与案例实践的其他单元仅粉丝可见,想要更多学习资源的同学关注我哦~
创作不易,参考之前,点个赞,收藏,关注一下不过分吧,家人们
第1关:线性回归算法思想
-
1、
下面属于多元线性回归的是?
A、求得正方形面积与对角线之间的关系。
B、建立股票价格与成交量、换手率等因素之间的线性关系。
C、建立西瓜价格与西瓜大小、西瓜产地、甜度等因素之间的线性关系。
D、建立西瓜书销量与时间之间的线性关系。
-
答案:B C
第2关:动手实现线性回归
任务描述
本关任务:根据本关卡所学知识,构建线性回归算法,并利用波士顿房价数据对模型进行训练,然后对未知的房价数据进行预测。
编程要求
根据提示,在右侧编辑器Begin-End
处补充 Python
代码,实现线性回归算法与MSE
损失函数计算方法,并利用房价数据对模型进行训练,然后对未知的房价数据进行预测。
#mse
def mse_score(y_predict,y_test):
#********* Begin *********#
m = len(y_predict)
a = y_test - y_predict
mse = np.dot(a,a)/m
#********* End *********#
return mse
def lr(train_feature,train_label,test_feature):
'''
input:
train_feature(ndarray):训练样本特征
train_label(ndarray):训练样本标签
test_feature(ndarray):测试样本特征
output:
predict(ndarray):测试样本预测标签
'''
#********* Begin *********#
#将x0=1加入训练数据
new_train = np.concatenate((np.ones(len(train_feature)).reshape(-1,1),train_feature),axis=1)
#使用正规方程解求得参数
train_T = new_train.T
linal = np.linalg.inv(np.dot(train_T,new_train))
result = np.dot(linal,train_T)
theta = np.dot(result,train_label)
#将x0=1加入测试数据
new_test = np.concatenate((np.ones(len(test_feature)).reshape(-1,1),test_feature),axis=1)
#求得测试集预测标签
predict = np.dot(new_test, theta)
#********* End *********#
return predict
第3关:衡量线性回归的性能指标
任务描述
本关任务:根据本关卡所学知识,用Python
实现线性回归常用评估指标,并对构造的线性回归模型进行评估。
def r2_score(y_predict,y_test):
'''
input:y_predict(ndarray):预测值
y_test(ndarray):真实值
output:r2(float):r2值
'''
#********* Begin *********#
r2 = 1-mse_score(y_predict,y_test)/np.var(y_test)
#********* End *********#
return r2