1.线性回归
1.1数据生成
使用随机数据作训练集时,可人为加入噪声:
y_train = (true_fun(X_train) + np.random.randn(n_samples) * 0.05).reshape(n_samples,1)
1.2定义模型
from sklearn.linear_model import LinearRegression # 导入线性回归模型
model = LinearRegression() # 定义模型
model.fit(X_train[:,np.newaxis], y_train) # 训练模型
print("输出参数w:",model.coef_) # 输出模型参数w
print("输出参数b:",model.intercept_) # 输出参数b
由于线性回归较为简单,参数较少,故可直接使用,然后训练得到拟合后的参数。
1.3模型测试与比较
X_test = np.linspace(0, 1, 100)
plt.plot(X_test, model.predict(X_test[:, np.newaxis]), label="Model")
plt.plot(X_test, true_fun(X_test), label="True function")
plt.scatter(X_train,y_train) # 画出训练集的点
plt.legend(loc="best")
plt.show()
先生成测试数据,通过图像可视化结果看算法预测与实际结果的差距。
2.多项式回归
tips:
多项式回归的一般思路:将m次多项式方程转化为m线性回归方程,然后使用线性回归的方法求出相应的参数。 算法实现时同理,将多项式特征分析器和线性回归串联,算出线性回归的参数之后倒推即可。
pipeline串联用法:
参考帖:https://blog.csdn.net/u010230273/article/details/98493025
3.逻辑回归学习心得:
这一部分主要使用逻辑回归做了二分类任务并在minist数据集上进行了训练和测试,期间使用了transformer进行图像信息的转换,用优化器最小化损失函数。
教程中使用了二阶优化算法中的拟牛顿法,其中牛顿法与梯度下降法的效率对比参考了:
https://www.cnblogs.com/maybe2030/p/4751804.html
sk-learn教程参考链接:https://github.com/datawhalechina/machine-learning-toy-code