1. 多元线性回归2. 多项式回归3. 正则化4. 线性回归应用举例(酒质量预测)4.1 数据预览4.2 模型验证5. 梯度下降法
本文为 scikit-learn机器学习(第2版)学习笔记
1. 多元线性回归
模型
写成向量形式:
还是披萨价格预测的背景:
特征:披萨直径、配料数量,预测目标:披萨价格
参数包含:一个截距项、两个特征的系数
1from numpy.linalg import inv
2from numpy import dot, transpose
3X = [[1, 6, 2], [1, 8, 1], [1, 10, 0], [1, 14, 2], [1, 18, 0]]
4y = [[7], [9], [13], [17.5], [18]]
5print(dot(inv(dot(transpose(X),X)), dot(transpose(X),y)))
6
7from numpy.linalg import lstsq
8# help(lstsq)
9print(lstsq(X,y))
1[[1.1875 ]
2 [1.01041667]
3 [0.39583333]]
4
5(array([[1.1875 ],
6 [1.01041667],
7 [0.39583333]]), array([8.22916667]), 3, array([26.97402951, 2.46027806, 0.59056212]))
8 系数, 残差, 秩, 奇异值
sklearn 线性回归
1from sklearn.linear_model import LinearRegression
2X = [[6, 2], [8, 1], [10, 0], [14, 2], [18, 0]]
3y = [[7], [9], [13], [17.5], [18]]
4
5model = LinearRegression()
6model.fit(X, y)
7
8X_test = [[8, 2], [9, 0], [11, 2], [16, 2], [12, 0]]
9y_test = [[11], [8.5], [15], [18], [11]]
10predictions = model.predict(X_test)
11
12for i, pred in enumerate(predictions):
13 print("预测值:%s, 实际值:%s" %(pred, y_test[i]))
14print(model.score(X_test,y_test))
1预测值:[10.0625], 实际值:[11]
2预测值:[10.28125], 实际值:[8.5]
3预测值:[13.09375],