当前位置: 首页 > news >正文

绍兴企业免费建站aso排名服务公司

绍兴企业免费建站,aso排名服务公司,浙江疫情最新消息今天封城了,wordpress微信注册登录线性回归 知识点: 1. 线性回归模型可以使用不同的目标函数,最常用的是最小二乘法、最小绝对值法和最大似然法。 2. 在最小二乘法中,目标是最小化实际值与预测值之间的误差平方和,这可以通过求导数等方法来求解。 3. 在最小绝对值…

线性回归

知识点:
1. 线性回归模型可以使用不同的目标函数,最常用的是最小二乘法、最小绝对值法和最大似然法。
2. 在最小二乘法中,目标是最小化实际值与预测值之间的误差平方和,这可以通过求导数等方法来求解。
3. 在最小绝对值法中,目标是最小化实际值与预测值之间的误差绝对值和,这可以使用线性规划等方法来求解。
4. 在最大似然法中,目标是估计模型参数,使得在给定自变量的条件下,因变量的概率最大化。
5. 线性回归模型的参数估计可以使用基于梯度下降的算法,如批量梯度下降、随机梯度下降、小批量梯度下降等。
6. 在应用线性回归模型时,需要注意多重共线性、异方差性、自相关等问题,并采取相应的处理措施。
7. 除了传统的线性回归模型,还有多项式回归、岭回归、lasso回归、弹性网络回归等变种模型。

逻辑回归

import numpy as npclass LogisticRegression:def __init__(self, learning_rate=0.01, num_iterations=10):self.learning_rate = learning_rateself.num_iterations = num_iterationsself.weights = Noneself.bias = Nonedef fit(self, X, y):num_samples, num_features = X.shapeprint(num_samples,num_features)self.weights = np.zeros(num_features)print(X)print(self.weights)self.bias = 0# 梯度下降算法for i in range(self.num_iterations):linear_model = np.dot(X, self.weights) + self.biasprint(linear_model)y_pred = self._sigmoid(linear_model)print("sigmoid")print(y_pred)print("end")# 计算损失函数的梯度dw = (1 / num_samples) * np.dot(X.T, (y_pred - y))db = (1 / num_samples) * np.sum(y_pred - y)# 更新权重和偏移量self.weights -= self.learning_rate * dwself.bias -= self.learning_rate * dbdef predict(self, X):print("pre")print(X)linear_model = np.dot(X, self.weights) + self.biasy_pred = self._sigmoid(linear_model)y_pred_class = [1 if i > 0.5 else 0 for i in y_pred]return np.array(y_pred_class)def _sigmoid(self, x):return 1 / (1 + np.exp(-x))# 创建训练数据
X_train = np.array([[1,2,3],[2,3,4],[3,4,5],[4,5,6], [5,6,7]])
y_train = np.array([0, 0, 1, 1, 1])# 创建逻辑回归模型
lr_model = LogisticRegression()# 训练模型
lr_model.fit(X_train, y_train)# 预测新数据
X_new = np.array([[2,4,6], [3,5,7]])
y_pred = lr_model.predict(X_new)print(y_pred)

SVM

基于sklearn库实现SVM:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score# 加载数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建 SVM 模型对象
svm_model = SVC(kernel='linear', C=1)# 训练 SVM 模型
svm_model.fit(X_train, y_train)# 预测测试集数据
y_pred = svm_model.predict(X_test)# 计算准确率
acc = accuracy_score(y_test, y_pred)
print('Accuracy:', acc)

具体代码实现:(复习后再过来研究)

import numpy as np# 定义 SVM 模型类
class SVM:def __init__(self, C=1.0, kernel='linear', gamma=1.0):self.C = C               # 惩罚系数self.kernel = kernel     # 核函数类型self.gamma = gamma       # 核函数参数self.alpha = None        # 拉格朗日乘子self.b = 0               # 阈值self.X = None            # 训练数据self.y = None            # 训练标签# 核函数def _kernel_function(self, x1, x2):if self.kernel == 'linear':return np.dot(x1, x2)elif self.kernel == 'rbf':return np.exp(-self.gamma * np.linalg.norm(x1 - x2) ** 2)else:raise ValueError('Unsupported kernel function type')# 训练模型def fit(self, X, y):n_samples, n_features = X.shape          # 5 3 self.alpha = np.zeros(n_samples)self.X = Xself.y = y# 计算 Gram 矩阵K = np.zeros((n_samples, n_samples))     # 5 5for i in range(n_samples):for j in range(n_samples):K[i, j] = self._kernel_function(X[i], X[j]) # np.dot# 定义优化目标函数def objective_function(alpha):return 0.5 * np.dot(alpha, np.dot(alpha, K)) - np.sum(alpha)# 定义约束条件def zero_sum_constraint(alpha):return np.dot(alpha, y)# 定义不等式约束条件bounds = [(0, self.C) for i in range(n_samples)]cons = [{'type': 'eq', 'fun': zero_sum_constraint}]# 使用优化算法求解拉格朗日乘子from scipy.optimize import minimizeres = minimize(objective_function, self.alpha, bounds=bounds, constraints=cons)self.alpha = res.x# 计算阈值support_vectors = self.alpha > 1e-5support_vectors_idx = np.where(support_vectors)[0]self.b = np.mean(y[support_vectors] - np.dot(K[support_vectors_idx, :], self.alpha * y))# 预测新数据def predict(self, X):n_samples = X.shape[0]y_pred = np.zeros(n_samples)for i in range(n_samples):s = 0for alpha, x, y in zip(self.alpha, self.X, self.y):s += alpha * y * self._kernel_function(X[i], x)y_pred[i] = s + self.breturn np.sign(y_pred)# 创建训练数据
X_train = np.array([[1,2,3],[2,3,4],[3,4,5],[4,5,6], [5,6,7]])
y_train = np.array([0, 0, 1, 1, 1])# 创建逻辑回归模型
model = SVM()# 训练模型
model.fit(X_train, y_train)# 预测新数据
X_new = np.array([[2,4,6], [3,5,7]])
y_pred = model.predict(X_new)print(y_pred)
http://www.wangmingla.cn/news/158961.html

相关文章:

  • 菜单设计制作网站排名函数
  • 网页设计与网站建设实训目的seo关键词
  • 西安电商平台网站建设2022年最新十条新闻
  • 口碑营销的经典案例seo外链在线提交工具
  • dede独立手机网站模板市场营销实务
  • seo网站图片优化长尾关键词查询工具
  • 宝坻建设委员会网站站长工具seo推广
  • 给政府做网站怎么报价网络推广的方式有哪些
  • 中山网站软件好用的百度网盘搜索引擎
  • 重庆哪家在做网站建设如何网上免费打广告
  • ui网页设计成都培训白山seo
  • 潍坊外贸网站优化知乎seo
  • 最近国际时事宁波seo推广如何收费
  • 单页购物网站源码关键词规划师工具
  • 过期域名广州seo黑帽培训
  • 养生网站源码wap网站html5
  • 分销平台appseo实战密码第三版pdf下载
  • 京东客网站怎么做的营销策划书格式及范文
  • seo信息优化上海知名的seo推广咨询
  • 驻马店专业网站建设怎样进入12345的公众号
  • 完备的网站建设推广公司专业网站建设
  • 做海关授权的网站哈尔滨优化推广公司
  • 武汉企业信息查询西安官网seo
  • 重庆哪有作网站的昆明排名优化
  • 深圳网站制作必推祥奔科技友情链接交换要注意哪些问题
  • 网站开发专业介绍广州网站建设正规公司
  • 软件开发文档的需求分析惠州网站seo
  • 永州公司做网站广告优化师前景怎样
  • 代理在线五年级下册数学优化设计答案
  • 绵阳网站建设河南优化网站