
机器学习
文章平均质量分 88
Infinity343
实事求是
展开
-
通过Python实现5个常用数值近似算法
二分法二分法是一种简单有效的数值型迭代算法,对于一个在区间[a,b]\left[a,b\right][a,b]上的连续函数fx,若满足f(a)⋅f(b)<0f(a)\cdot f(b)<0f(a)⋅f(b)<0,那么fx在[a,b]\left[a,b\right][a,b]上必有根,此时设定分割点x0=(a+b)/2x_0=\left(a+b\right)/2x0=(a+b)/2将区间等分为[a,x0]\left[a,x_0\right][a,x0]和[x0,b]\left[x_0,原创 2021-12-15 02:00:38 · 3008 阅读 · 0 评论 -
Python线性回归
基于之前逻辑回归和梯度下降的代码进行改造新增内容优化了新建函数对象时输出内容的逻辑规则加入Lasso和Ridge回归, 即L1正则化和L2正则化(L1采用了坐标轴下降算法)加入正态分布的pdf和cdf图像绘制功能绘制分布图像的同时可以给出相应函数值对坐标轴设定不适宜和方差与均值差异较大的情况进行警告函数图像的绘制可以更方便的进行自定义了将线性回归的默认解法设定为了正规方程法, 因为这在高纬度时比简单梯度下降算法更可靠import pandas as pdimport numpy as原创 2021-03-20 18:54:40 · 377 阅读 · 4 评论 -
Python坐标轴下降算法
该算法是为了解决L1正则化下线性回归无法使用梯度下降法求解的问题先直观的来了解一下坐标轴下降算法给定二元函数f(x,y)=5x2−6xy+5yf(x,y)=5x^2-6xy+5yf(x,y)=5x2−6xy+5y如何求解该函数的最小值?(虽然很容易就能看出是0), 坐标轴下降算法可以解决这个问题先来看这个函数的图像import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dimport numpy as原创 2021-03-17 00:23:01 · 2378 阅读 · 7 评论 -
逻辑回归中的梯度下降
这次使用了类的编程方法, 集成度、效率更高, 代码量更少, 使用更少的库import numpy as npimport matplotlib.pyplot as pltclass LogisticRegression: def __init__(self, learning_rate=0.001, max_iter=100, solver=None, e原创 2021-03-13 12:26:11 · 1183 阅读 · 5 评论 -
Python梯度下降法
线性(回归)模型梯度下降算法是机器学习中最常见的数值型算法之一, 本文分别从统计学和机器学习的角度来谈到梯度下降法的理论与应用.从统计学的角度来看, 线性回归模型的一般矩阵形式为:Y^n×1=E(Y∣X)=Xn×(p+1)θ(p+1)×1\hat{Y}_{n\times1}=E(Y|X)=X_{n\times(p+1)} \theta_{(p+1)\times 1} Y^n×1=E(Y∣X)=Xn×(p+1)θ(p+1)×1其中nnn是样本量, ppp通常会说是自变量(或协变量)个数, XX原创 2021-03-05 17:19:25 · 601 阅读 · 3 评论 -
通过Python实现K-means算法
K-means算法K-means是机器学习中很常用的聚类算法, 关于K-means算法的数学原理, 算法, 伪代码等已经有非常丰富的文献资料, 这里就不介绍了. 直接看代码.调用以下库import numpy as np #用于抽样和生成随机数from sklearn.cluster import KMeans #sklearn自带的Kmeans算法, 用于严重本文算法结果是否正确import matplotlib.pyplot as plt #结果可视化import sys原创 2021-02-20 18:48:58 · 747 阅读 · 2 评论