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

线性回归 (Linear Regression)案例分析1

广告费用与产品销量

  • 工欲善其事必先利其器
  • 数据分析
    • 1. 检查缺失值、异常值
    • 3. 散点图查看特征、响应相关性
    • 3. 热力图查看特征、响应相关性
  • 特征工程
    • 1、导入必要工具包
    • 2、读取数据
    • 3、数据标准化
    • 4、保存特征工程的结果到文件,供机器学习模型使用
  • 模型选择
  • 模型评价指标
  • 模型测试结果

工欲善其事必先利其器

预备知识: 数据分析入门操作
相关工具库的参考文档: 多维数组&矩阵处理-numpy 文件操作与处理-pandas
数据分析可视化工具1-matplotlib
数据分析可视化工具2-seaborn
机器学习算法库scikit-learn
*深度学习框架TensorFlow
*深度学习框架Pytorch

数据分析

1. 检查缺失值、异常值

导入相关库

#数据处理
import numpy as np 
import pandas as pd #数据可视化
import matplotlib.pyplot as plt
import seaborn as sns%matplotlib inline#显示中文
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

读取数据并查看列属性

#读取数据
dpath = "./data/"
df = pd.read_csv(dpath + "Advertising.csv")#df.columns = ['记录号','电视广告费用', '广播广告费用', '报纸广告费用', '产品销量']
df.columns = ['ID','TV', 'radio', 'newspaper', 'sales']
#通过观察前5行,了解数据每列(特征)的概况
df.head()
# 数据总体信息
df.info()

在这里插入图片描述

# 对数值型特征,得到每个特征的描述统计量,查看特征的大致分布
df.describe()
  • 200个样本,没有缺失值,看不出来有噪声数据
  • 每个样本有3个数值型特征: TV, radio, newspaper
  • 标签:产品销量

3. 散点图查看特征、响应相关性

#散点图查看单个特征与目标之间的关系
plt.scatter(df['TV'], df['sales'])
plt.xlabel(u'电视广告费用')
plt.ylabel(u'销量')

在这里插入图片描述

log_TV = np.log1p(df['TV'])
log_sales = np.log1p(df['sales'])plt.scatter(log_TV, log_sales)
plt.xlabel(u'log(电视广告费用)')
plt.ylabel(u'log(销量)')

在这里插入图片描述

plt.scatter(df['radio'], df['sales'])
plt.xlabel(u'广播广告费用')
plt.ylabel(u'销量')

在这里插入图片描述

plt.scatter(df['newspaper'], df['sales'])
plt.xlabel(u'报纸广告费用')
plt.ylabel(u'销量')

在这里插入图片描述
在这里插入图片描述

plt.xlim(0,300)
plt.ylim(0,300)plt.scatter(df['TV'], df['radio'])
plt.xlabel(u'电视广告费用')
plt.ylabel(u'广播广告费用')

在这里插入图片描述

  • 特征与特征之间的相关性不太高
  • 特征TV, radio与标签相关性较高,特征newspaper相关性不太高

3. 热力图查看特征、响应相关性

# 得到相关系数的绝对值,通常认为相关系数的绝对值大于0.6的特征为强相关
data_corr = df.corr()
data_corr = data_corr.abs()
sns.heatmap(data_corr,annot=True)
plt.show()

在这里插入图片描述

特征工程

  特征均为数值型特征,暂时不做过多处理,只是对特征做标准化处理,使得各特征处理后均为0均值(数据围绕 0 中心化)、1标准差(数据的离散程度被统一为相同的尺度)(并不要求是正态分布:虽然标准正态分布的均值为 0,标准差为 1,但并不是说处理后的特征必须服从正态分布。标准化处理后,特征的分布形状可能仍与原始分布相似(只要经过均值和方差的调整即可))。

1、导入必要工具包

#数据处理
import numpy as np 
import pandas as pd #数据可视化
import matplotlib.pyplot as plt
%matplotlib inline#显示中文
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

2、读取数据

#读取数据
dpath = "./data/"
df = pd.read_csv(dpath + "Advertising.csv")#通过观察前5行,了解数据每列(特征)的概况
df.head()
#去掉索引列
df.drop(['Unnamed: 0'], axis = 1, inplace = True)
# 数据总体信息
df.info()

3、数据标准化

# 从原始数据中分离输入特征x和输出y
y = df['sales']
X = df.drop('sales', axis = 1)#特征名称,用于后续显示权重系数对应的特征
feat_names = X.columns
# 数据标准化
# 本数据集中3个特征的单位相同,可以不做特征缩放,不影响正则
# 但3个特征的取值范围不同,如果采用梯度下降/随机梯度下降法求解,
# 还是将所有特征的取值范围缩放到相同区间
from sklearn.preprocessing import StandardScaler# 分别初始化对特征和目标值的标准化器
ss_X = StandardScaler()# 对训练数据,先调用fit方法训练模型,得到模型参数;然后对训练数据和测试数据进行transform
X = ss_X.fit_transform(X)

4、保存特征工程的结果到文件,供机器学习模型使用

fe_df = pd.DataFrame(data = X, columns = feat_names, index = df.index)#加上标签y
fe_df["sales"] = y#保存结果到文件
fe_df.to_csv(dpath + 'FE_Advertising.csv', index=False)

模型选择

读取数据

#数据处理
import numpy as np 
import pandas as pd #数据可视化
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns# 使用r2_score作为回归模型性能的评价
from sklearn.metrics import r2_score  #显示中文
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']#读取数据
dpath = "./data/"
df = pd.read_csv(dpath + "FE_Advertising.csv")#通过观察前5行,了解数据每列(特征)的概况
df.head()# 数据总体信息
df.info()

数据准备

# 从原始数据中分离输入特征x和输出y
y = df['sales']
X = df.drop('sales', axis = 1)#特征名称,用于后续显示权重系数对应的特征
feat_names = X.columns#将数据分割训练数据与测试数据
from sklearn.model_selection import train_test_split# 随机采样20%的数据构建测试样本,其余作为训练样本
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33, test_size=0.2)
#X_train.shape

1. 最小二乘线性回归(OLS)

# 线性回归
from sklearn.linear_model import LinearRegression# 1.使用默认配置初始化学习器实例
lr = LinearRegression()# 2.用训练数据训练模型参数
lr.fit(X_train, y_train)# 3. 用训练好的模型对测试集进行预测
y_test_pred_lr = lr.predict(X_test)
y_train_pred_lr = lr.predict(X_train)#性能评估,R方分数
print("The r2 score of LinearRegression on test is %f" %(r2_score(y_test, y_test_pred_lr)))
print("The r2 score of LinearRegression on train is %f" %(r2_score(y_train, y_train_pred_lr)))# 看看各特征的权重系数,系数的绝对值大小可视为该特征的重要性
fs = pd.DataFrame({"columns":list(feat_names), "coef":list((lr.coef_.T))})
#fs.sort_values(by=['coef'],ascending=False)
fs = fs.append([{'columns':'intercept','coef':lr.intercept_}], ignore_index=True)
fs

在这里插入图片描述
在这里插入图片描述

查看残差分布

#在训练集上观察预测残差的分布,看是否符合模型假设:噪声为0均值的高斯噪声
figsize = 11,9
res = y_train_pred_lr - y_train
sns.distplot(res, bins=40, kde = False)
plt.xlabel(u'残差', fontsize = 16)

在这里插入图片描述

在这里插入图片描述

figsize = 11,9
plt.scatter(y_train, res)
plt.xlabel(u'真实值', fontsize = 16)
plt.ylabel(u'残差', fontsize = 16)

在这里插入图片描述

  从真实值和残差的散点图来看,真实值和残差不是没有关系。看起来真实值较小和较大时,预测残差大多<0,其余情况残差大多>0。也就是说,模型还没有完全建模y与x之间的关系,还有一部分关系残留在残差中。

2. 岭回归:正则参数 λ \lambda λ

from sklearn.linear_model import  RidgeCV#1. 设置超参数(正则参数)范围
alphas = [ 0.01, 0.1, 1, 10, 100]#2. 生成一个RidgeCV实例
ridge = RidgeCV(alphas=alphas, store_cv_values=True)  #3. 模型训练
ridge.fit(X_train, y_train)    #4. 预测
y_test_pred_ridge = ridge.predict(X_test)
y_train_pred_ridge = ridge.predict(X_train)#模型性能评估
print("The r2 score of Ridge on test is %f" %(r2_score(y_test, y_test_pred_ridge)))
print("The r2 score of Ridge on train is %f" %(r2_score(y_train, y_train_pred_ridge)))# 看看各特征的权重系数,系数的绝对值大小可视为该特征的重要性
fs = pd.DataFrame({"columns":list(feat_names), "coef":list((ridge.coef_.T))})
#fs.sort_values(by=['coef'],ascending=False)
fs = fs.append([{'columns':'intercept','coef':ridge.intercept_}], ignore_index=True)
fs

在这里插入图片描述

mse_mean = np.mean(ridge.cv_values_, axis = 0)
plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) #最佳超参数
plt.axvline(np.log10(ridge.alpha_), color='r', ls='--')plt.xlabel('log(alpha)', fontsize = 16)
plt.ylabel('MSE', fontsize = 16)
plt.show()print ('alpha is:', ridge.alpha_)

在这里插入图片描述

3. Lasso:正则参数 λ \lambda λ

from sklearn.linear_model import LassoCV#1. 设置超参数搜索范围
#Lasso可以自动确定最大的alpha,所以另一种设置alpha的方式是设置最小的alpha值(eps) 和 超参数的数目(n_alphas),
#然后LassoCV对最小值和最大值之间在log域上均匀取值n_alphas个
# np.logspace(np.log10(alpha_max * eps), np.log10(alpha_max),num=n_alphas)[::-1]#2 生成LassoCV实例(默认超参数搜索范围)
lasso = LassoCV()  #3. 训练(内含CV)
lasso.fit(X_train, y_train)  #4. 测试
y_test_pred_lasso = lasso.predict(X_test)
y_train_pred_lasso = lasso.predict(X_train)# 评估,使用r2_score评价模型在测试集和训练集上的性能
print("The r2 score of lasso on test is %f" %(r2_score(y_test, y_test_pred_lasso)))
print("The r2 score of lasso on train is %f" %(r2_score(y_train, y_train_pred_lasso)))# 看看各特征的权重系数,系数的绝对值大小可视为该特征的重要性
fs = pd.DataFrame({"columns":list(feat_names), "coef_lr":list((lr.coef_.T)), "coef_ridge":list((ridge.coef_.T)), "coef_lasso":list((lasso.coef_.T))})
#fs.sort_values(by=['coef_lr'],ascending=False)
fs = fs.append([{'columns':'intercept','coef_lr':lr.intercept_, 'coef_ridge':ridge.intercept_, 'coef_lasso':lasso.intercept_}], ignore_index=True)
fs

在这里插入图片描述

mses = np.mean(lasso.mse_path_, axis = 1)
plt.plot(np.log10(lasso.alphas_), mses) #最佳超参数
plt.axvline(np.log10(lasso.alpha_), color='r', ls='--')plt.xlabel('log(alpha)', fontsize = 16)
plt.ylabel('MSE', fontsize = 16)
plt.show()    print ('alpha is:', lasso.alpha_)

在这里插入图片描述

from sklearn.linear_model import ElasticNetCV#1. 设置超参数搜索范围
#Lasso可以自动确定最大的alpha,所以另一种设置alpha的方式是设置最小的alpha值(eps) 和 超参数的数目(n_alphas),
#然后LassoCV对最小值和最大值之间在log域上均匀取值n_alphas个
# np.logspace(np.log10(alpha_max * eps), np.log10(alpha_max),num=n_alphas)[::-1]
l1_ratio = [0.01, 0.1, .5, .7, .9, .95, .99, 1]#2 ElasticNetCV(设置超参数搜索范围)
elastic_net = ElasticNetCV(l1_ratio = l1_ratio )  #3. 训练(内含CV)
elastic_net.fit(X_train, y_train)  #4. 测试
y_test_pred_elastic_net = elastic_net.predict(X_test)
y_train_pred_elastic_net = elastic_net.predict(X_train)# 评估,使用r2_score评价模型在测试集和训练集上的性能
print("The r2 score of elastic_net on test is %f" %(r2_score(y_test, y_test_pred_elastic_net)))
print("The r2 score of elastic_net on train is %f" %(r2_score(y_train, y_train_pred_elastic_net)))# 看看各特征的权重系数,系数的绝对值大小可视为该特征的重要性
fs = pd.DataFrame({"columns":list(feat_names), "coef_lr":list((lr.coef_.T)), "coef_ridge":list((ridge.coef_.T)), "coef_lasso":list((lasso.coef_.T)), 'coef_elastic_net':list((elastic_net.coef_.T))})
#fs.sort_values(by=['coef_lr'],ascending=False)
fs = fs.append([{'columns':'intercept','coef_lr':lr.intercept_, 'coef_ridge':ridge.intercept_, 'coef_lasso':lasso.intercept_, 'coef_elastic_net':elastic_net.intercept_}], ignore_index=True)
fs

在这里插入图片描述

mses = np.mean(elastic_net.mse_path_, axis = 2)# plot results
n_l1_ratio = len(l1_ratio)
n_alpha = elastic_net.alphas_.shape[1]for i, l1 in enumerate(l1_ratio):plt.plot(np.log10(elastic_net.alphas_[i]), mses[i], label= u'l1正则比例:' + str(l1))#最佳超参数
plt.axvline(np.log10(elastic_net.alpha_), color='r', ls='--')plt.xlabel('log(alpha)', fontsize = 16)
plt.ylabel('MSE', fontsize = 16)
plt.legend(fontsize = 12)
plt.show()    print ('alpha is:', elastic_net.alpha_)
print ('l1_ratio is:', elastic_net.l1_ratio_)

在这里插入图片描述

4. 默认超参数的Huber损失回归

# Huber回归
from sklearn.linear_model import HuberRegressor# 1.使用默认配置初始化学习器实例
hr = HuberRegressor()# 2.用训练数据训练模型参数
hr.fit(X_train, y_train)# 3. 用训练好的模型对测试集进行预测
y_test_pred_hr = hr.predict(X_test)
y_train_pred_hr = hr.predict(X_train)# 看看各特征的权重系数,系数的绝对值大小可视为该特征的重要性
fs = pd.DataFrame({"columns":list(feat_names), "coef":list((hr.coef_.T))})
#fs.sort_values(by=['coef'],ascending=False)
fs = fs.append([{'columns':'intercept','coef':hr.intercept_}], ignore_index=True)
fs

在这里插入图片描述

#在训练集上观察预测残差的分布,看是否符合模型假设:噪声为0均值的高斯噪声
figsize = 11,9
res =  y_train_pred_hr - y_train
sns.distplot(res, bins=40, kde = False)
plt.xlabel(u'残差')
plt.title(u'残差直方图') 

在这里插入图片描述

figsize = 11,9res = y_train - y_train_pred_hr
plt.scatter(y_train_pred_hr, res)
plt.xlabel(u'预测值')
plt.ylabel(u'残差')

在这里插入图片描述

模型评价指标

  超参数调优评价指标:MSE(红色竖线为最佳超参数)
在这里插入图片描述

模型测试结果

回归系数

  在数据分析中,我们经常需要从数据集中随机抽取一部分样本作为测试数据,而剩下的样本则用作训练数据。例如,在这个例子中,我们随机选择了20%的样本作为测试数据,而其余80%的样本则用作训练数据。

  接下来,我们来看一下广告数据集上不同线性回归模型的系数。这些模型包括最小二乘线性回归、岭回归、Lasso回归以及弹性网络回归。每种模型都对不同的特征(如TV、radio和newspaper)赋予了不同的回归系数。此外,还有一个截距项用于调整模型的基线预测值。

  以下是这些模型的回归系数:

特征最小二乘线性回归系数岭回归系数Lasso系数弹性网络系数
TV 3.983944 3.983944 3.983944 3.981524 3.981524 3.981524 3.921642 3.921642 3.921642 3.921642 3.921642 3.921642
radio 2.860230 2.860230 2.860230 2.858304 2.858304 2.858304 2.806374 2.806374 2.806374 2.806374 2.806374 2.806374
newspaper 0.038194 0.038194 0.038194 0.038925 0.038925 0.038925 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
截距项 13.969091 13.969091 13.969091 13.969282 13.969282 13.969282 13.972528 13.972528 13.972528 13.972528 13.972528 13.972528

  从这些系数中,我们可以看到岭回归、Lasso和弹性网络的回归系数的绝对值比最小二乘线性回归(OLS)的小。这表明这些模型在一定程度上进行了权值收缩,有助于防止模型过拟合。此外,Lasso回归还展示了其稀疏性特点,即它将特征newspaper的系数缩减为 0 0 0,这意味着在Lasso模型中,newspaper对预测结果的影响被完全忽略。

  这种系数的缩减有助于提高模型的解释性和泛化能力,特别是在特征数量较多的情况下。通过这种方式,我们可以更清晰地理解哪些特征对预测结果有实质性的影响,同时也能够减少模型的复杂度。

R 2 R^2 R2分数评价

  在评估不同线性回归模型的性能时,我们通常会使用R方分数( R 2 R^2 R2),这是一个衡量模型拟合优度的统计指标。R方分数的值越接近1,表示模型对数据的解释能力越强。以下是广告数据集上不同线性回归模型的性能比较:

数据集最小二乘线性回归岭回归Lasso弹性网络
训练集上性能 0.896285 0.896285 0.896285 0.896285 0.896285 0.896285 0.895925 0.895925 0.895925 0.895925 0.895925 0.895925
测试集上性能 0.893729 0.893729 0.893729 0.893865 0.893865 0.893865 0.899197 0.899197 0.899197 0.899197 0.899197 0.899197

  从这些数据可以看出,最小二乘线性回归模型在训练集上的性能最好,其R方分数为 0.896285 0.896285 0.896285,但在测试集上的性能最差,其R方分数为 0.893729 0.893729 0.893729。这表明最小二乘线性回归模型可能存在过拟合的问题,即它在训练数据上表现得很好,但在未见过的数据上表现不佳。

  相比之下,Lasso模型和弹性网络在测试集上的性能最好,它们的R方分数均为 0.899197 0.899197 0.899197。这表明这两种模型在处理广告数据集时,不仅在训练集上表现良好,而且在测试集上也能保持较好的性能,具有较好的泛化能力。

  总的来说,选择合适的模型对于确保模型在新数据上的表现至关重要。Lasso模型和弹性网络由于其在测试集上的优异表现,可能是处理此类数据集的更好选择。

(注:代码和数据链接会在章节末给出)

相关文章:

线性回归 (Linear Regression)案例分析1

广告费用与产品销量 工欲善其事必先利其器数据分析1. 检查缺失值、异常值3. 散点图查看特征、响应相关性3. 热力图查看特征、响应相关性 特征工程1、导入必要工具包2、读取数据3、数据标准化4、保存特征工程的结果到文件&#xff0c;供机器学习模型使用 模型选择读取数据数据准…...

uni-app集成sqlite

Sqlite SQLite 是一种轻量级的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛应用于各种应用程序中&#xff0c;特别是那些需要嵌入式数据库解决方案的场景。它不需要单独的服务器进程或系统配置&#xff0c;所有数据都存储在一个单一的普通磁盘文件中&am…...

策略模式环境类的实现方式对比

文章目录 1、策略模式2、聚合策略类实现方式一3、聚合策略类实现方式二4、对比5、补充&#xff1a;ApplicationContextAware接口 1、策略模式 近期工作中&#xff0c;需要处理4.x和5.x两个版本的数据&#xff0c;所以自然想到的是策略模式&#xff0c;写一个抽象类&#xff0c…...

Node.js 登录鉴权

目录 Session express-session 配置 express-session 函数 ts 要配置声明文件 express-session.d.ts express-session 使用 express-session 带角色 Token 什么是 JWT token jsonwebtoken 使用 jsonwebtoken 带角色 Session express 使用 express-session 管理会话&…...

【c++】【线程池】固定式线程池(FixedThreadPool)

【c】【线程池】固定式线程池&#xff08;FixedThreadPool&#xff09; 1属性 1.1 Task可调用对象 使用 function 包装器和using类型重命名 设置一个Task的可调用对象(可理解为函数指针) 这个Task也就是我们的任务 using Task std::function<void(void)>;定义了一个…...

高可用、高性能、负载均衡集群的区别

维度高可用集群高性能集群负载均衡集群核心目标服务持续可用&#xff0c;减少停机加速计算任务&#xff0c;提升处理能力请求分发算法、健康检查关键技术冗余、心跳检测、鼓掌转移并行计算、高速网络、分布式存储请求分发算法、健康检查典型应用数据库主从切换、关键业务系统科…...

Docker 与 Serverless(无服务器架构)

Serverless&#xff08;无服务器架构&#xff09; 是一种新的云计算架构&#xff0c;它通过让开发者专注于业务逻辑而无需管理服务器基础设施&#xff0c;来简化应用的开发和部署。Serverless 模型通常由云服务提供商管理基础设施的所有方面&#xff0c;而开发者只需提供代码和…...

mac 下 java 调用 gurobi 不能加载 jar

在 mac 电脑中的 java 始终不能加载 gurobi 的 jar 包&#xff0c;java 的开发软件 eclipse&#xff0c;idea 总是显示找不到 gurobi 的 jar 包&#xff0c;但是 jar 包明明就在那里。 摸索了三个小时&#xff0c;最后发现原因竟然是&#xff1a; jar 包太新&#xff0c;替换…...

halcon三维点云数据处理(二十七)remove_bin_for_3d_object_localization

目录 一、remove_bin_for_3d_object_localization代码第一部分二、remove_bin_for_3d_object_localization代码第二部分三、效果图一、remove_bin_for_3d_object_localization代码第一部分 1、读图构建3D模型。 2、一次二值化选取区域。 3、一次和背景差值选取区域。 4、在二维…...

Python 编程题 第二节:组合数字、乘法口诀表、水仙花数、反向输出四位数、判断三角形

组合数字 1-4不重复组成三位数&#xff0c;利用集合的去重 lst[] for i in range(1,5):for j in range(1,5):for m in range(1,5):s{i,j,m}if len(s)3:lst.append(i*100j*10m) print(lst) 乘法口诀表 修改换行符 for i in range(1,10):for j in range(1,i1):print(f"…...

【HTML— 快速入门】HTML 基础

准备工作 vscode下载 百度网盘 Subline Text 下载 Sublime Text下载 百度网盘 vscode 下载 Sublime Text 是一款轻量好用的文本编辑器&#xff0c;我们在写前端代码时&#xff0c;使用 Sublime Text 打开比使用记事本打开&#xff0c;得到的代码体验更好&#xff0c;比 vscode…...

【MATLAB中的图像数据结构】

MATLAB中的图像数据结构 目录 MATLAB中的图像数据结构目标 &#xff1a;知识点 &#xff1a;1. 图像的存储方式 &#xff1a;2. 图像的颜色空间 &#xff1a;3. 图像的像素操作 &#xff1a; 示例代码 &#xff1a;1. 读取和显示图像 &#xff1a;2. 查看图像信息 &#xff1a;…...

在线抽奖系统——项目介绍

目录 项目介绍 页面预览 需求分析 管理员登录注册 人员模块 奖品模块 活动模块 抽奖模块 系统设计 系统架构 项目环境 数据库设计 安全设计 完整代码&#xff1a;项目完整代码/在线抽奖系统/lottery-system Echo/project - 码云 - 开源中国 项目介绍 利用 MySQ…...

day7作业

编写一个如下场景&#xff1a; 有一个英雄Hero类&#xff0c;私有成员&#xff0c;攻击&#xff08;Atx&#xff09;&#xff0c;防御&#xff08;Defense&#xff09;&#xff0c;速度&#xff08;Speed)&#xff0c;生命值&#xff08;Blood)&#xff0c;以及所有的set get 方…...

JavaScript 系列之:Ajax、Promise、Axios

前言 同步&#xff1a;会阻塞。同步代码按照编写的顺序逐行依次执行&#xff0c;只有当前的任务完成后&#xff0c;才会执行下一个任务。 异步&#xff1a;异步代码不会阻塞后续代码的执行。当遇到异步操作时&#xff0c;JavaScript 会将该操作放入任务队列中&#xff0c;继续…...

AI人工智能机器学习之神经网络

1、概要 本篇学习AI人工智能机器学习之神经网络&#xff0c;以MLPClassifier和MLPRegressor为例&#xff0c;从代码层面讲述最常用的神经网络模型MLP。 2、神经网络 - 简介 在 Scikit-learn 中&#xff0c;神经网络是通过 sklearn.neural_network 模块提供的。最常用的神经网…...

鸿蒙开发深入浅出01(基本环境搭建、页面模板与TabBar)

鸿蒙开发深入浅出01&#xff08;基本环境搭建、页面模板与TabBar&#xff09; 1、效果展示2、下载 DevEco Studio3、创建项目4、新建页面模板5、更改应用信息6、新建以下页面7、Index.ets8、真机运行9、图片资源文件 1、效果展示 2、下载 DevEco Studio 访问官网根据自己的版本…...

FreeRTOS动态任务和静态任务创建

一.动态任务创建 1.搭建任务框架 去task.c中将任务参数复制到main中 然后将const去掉&#xff0c;它会限制参数类型&#xff0c;任务大小、任务优先级、任务句柄需要去宏定义&#xff0c;任务句柄是指针类型要取地址 vTaskStartScheduler(); //开启任务调度&#xff0c;.c…...

QT:Graphics View的坐标系介绍

在 Qt 的 Graphics View 框架中&#xff0c;存在三种不同的坐标系&#xff0c;分别是 物品坐标系&#xff08;Item Coordinates&#xff09;、场景坐标系&#xff08;Scene Coordinates&#xff09; 和 视图坐标系&#xff08;View Coordinates&#xff09;。这三种坐标系在图形…...

C# httpclient 和 Flurl.Http 的测试

关于C#调用接口或Post,Flurl封装了httpclient, CSDN有哥们提供了一个公网的测试网站&#xff0c;可以测试Post调用&#xff0c;我写了2个函数&#xff0c;测试httpclient和Flurl使用Post: async 和 await 是成对使用的&#xff0c;为了接受web异步返回的数据&#xff0c;winfor…...

精选案例展 | 智己汽车—全栈可观测驱动智能化运营与成本优化

本案例为“观测先锋 2024 可观测平台创新应用案例大赛”精选案例&#xff0c;同时荣获IT168“2024技术卓越奖评选-年度创新解决方案”奖。 项目背景 近年来&#xff0c;中国汽车行业进入转型升级阶段&#xff0c;智能网联技术成为行业发展的核心。车联网、自动驾驶等技术的加速…...

阿里云可观测全面拥抱 OpenTelemetry 社区

作者&#xff1a;古琦 在云计算、微服务、容器化等技术重塑 IT 架构的今天&#xff0c;系统复杂度呈指数级增长。在此背景下&#xff0c;开源可观测性技术已从辅助工具演变为现代 IT 系统的"数字神经系统"&#xff0c;为企业提供故障预警、性能优化和成本治理的全方…...

剑指 Offer II 032. 有效的变位词

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20032.%20%E6%9C%89%E6%95%88%E7%9A%84%E5%8F%98%E4%BD%8D%E8%AF%8D/README.md 剑指 Offer II 032. 有效的变位词 题目描述 给定两个字符串 s 和 t &#xff0c…...

AcWing 蓝桥杯集训·每日一题2025·密接牛追踪2

密接牛追踪2 农夫约翰有 N 头奶牛排成一排&#xff0c;从左到右依次编号为 1∼N。 不幸的是&#xff0c;有一种传染病正在蔓延。 最开始时&#xff0c;只有一部分奶牛受到感染。 每经过一个晚上&#xff0c;受感染的牛就会将病毒传染给它左右两侧的牛&#xff08;如果有的话…...

银河麒麟高级服务器操作系统在线调整/pro/{PID}/limits文件中nofile的软限制和硬限制参数值操作方法

银河麒麟高级服务器操作系统在线调整/pro/{PID}/limits文件中nofile的软限制和硬限制参数值操作方法 一 系统环境二 使用场景三 操作步骤 一 系统环境 [rootlocalhost ~]# nkvers ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server…...

山大软院ai导论实验之采用BP神经网络分类MNIST数据集

目录 实验代码 实验内容 实验代码 import matplotlib.pyplot as plt from matplotlib import font_manager import torch from torch.utils.data import DataLoader import torchvision from torchvision import transforms# 数据预处理 transform transforms.Compose([tra…...

threeJs+vue 轻松切换几何体贴图

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“threeJsvue 轻松切换几何体贴图”。 想象一下&#xff0c;手头上正好有个在线3D家具商店&#xff0c;用户不仅可以看到产品的静态图片&#xff0c;还能实时更换沙发的颜色或材质&#xff0c;获得真实的购物体验。…...

【python】01_写在前面的话

又是爆肝干文的日子&#xff0c;继上次说要出一期Python新手入门教程系列文章后&#xff0c;就在不停地整理和码字&#xff0c;终于是把【基础入门】这一块给写出来了。 不积跬步无以至千里&#xff0c;不积小流无以成江海&#xff0c;一个一个板块的知识积累&#xff0c;早晚你…...

跨平台公式兼容性大模型提示词模板(飞书 + CSDN + Microsoft Word)

飞书云文档 CSDN MD编辑器 Microsoft Word 跨平台公式兼容方案&#xff1a; 一、背景痛点与解决方案 在技术文档创作中&#xff0c;数学公式的跨平台渲染一直存在三大痛点&#xff1a; 飞书云文档&#xff1a;原生KaTeX渲染与导出功能存在语法限制微软Word&#xff1a;Math…...

【Python爬虫(85)】联邦学习:爬虫数据协作的隐私保护新范式

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…...