机器学习基础算法--回归类型和评价分析

目录

1.数据归一化处理

2.数据标准化处理

3.Lasso回归模型

4.岭回归模型

5.评价指标计算


1.数据归一化处理

复制代码
"""
x的归一化的方法还是比较多的我们就选取最为基本的归一化方法
x'=(x-x_min)/(x_max-x_min)
"""
import numpy as np
from sklearn.preprocessing import MinMaxScaler
rd = np.random.RandomState(1614) 
X =rd.randint(0, 20, (5, 5))
scaler = MinMaxScaler()#归一化
# 对数据进行归一化
X_normalized = scaler.fit_transform(X)
X_normalized

2.数据标准化处理

python 复制代码
"""
标准化的方法x'=(x-u)/(标准差)
"""
import numpy as np
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
rd = np.random.RandomState(1614) 
X =rd.randint(0, 20, (5, 5))#X时特征数据
# 创建StandardScaler对象(标准化)
scaler = StandardScaler()
X_standardized = scaler.fit_transform(X)
X_standardized

3.Lasso回归模型

python 复制代码
"""
lasso回归
"""
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.linear_model import Lasso
# 从Excel读取数据
dataframe = pd.read_excel('LinearRegression.xlsx')
data=np.array(dataframe)
X=data[:,0].reshape(-1,1)
Y=data[:,1]
# 创建Lasso回归模型
lambda_ = 0.1  # 正则化强度
lasso_reg = Lasso(alpha=lambda_)
# 拟合回归模型
lasso_reg.fit(X, y)
# 计算回归系数
coefficients = np.append(lasso_reg.coef_,lasso_reg.intercept_)
# 绘制散点图和拟合曲线
plt.figure(figsize=(8,6), dpi=500)
plt.scatter(X, y,  marker='.', color='b',label='Data Points',s=64)
plt.plot(X, lasso_reg.predict(X), color='r', label='Lasso Regression')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Lasso Regression')
plt.legend()
plt.text(x=-0.38,y=60,color='r',s="Lasso Regression Coefficients:{}".format( coefficients))
plt.savefig(r'C:\Users\Zeng Zhong Yan\Desktop\Lasso Regression.png')
plt.show()

4.岭回归模型

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.linear_model import Ridge

# 从Excel读取数据
dataframe = pd.read_excel('LinearRegression.xlsx')
data=np.array(dataframe)
X=data[:,0].reshape(-1,1)
Y=data[:,1]
#创建岭回归模型
lambda_ = 0.1  # 正则化强度
ridge_reg = Ridge(alpha=lambda_)
#拟合岭回归模型并且计算回归系数
ridge_reg.fit(X, y)
coefficients = np.append(ridge_reg.coef_,ridge_reg.intercept_)
#绘制可视化图
plt.figure(figsize=(8, 6), dpi=500)
plt.scatter(X, y,  marker='.', color='b',label='Data Points',s=64)
plt.plot(X, ridge_reg.predict(X), color='r', label='Ridge Regression')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Ridge Regression')
plt.legend()
plt.text(x=-0.38,y=60,color='r',s="Ridge Regression Coefficients:{}".format(coefficients))
plt.savefig(r'C:\Users\Zeng Zhong Yan\Desktop\Ridge Regression.png')
plt.show()

5.评价指标计算

MSE= i=1 n ( Y i - Y ^ ) 2 n RMES= i=1 n ( Y i - Y ^ ) 2 n MAE= i=1 n | Y i - Y ^ | n R 2 =1- i=1 n ( Y ^ - Y i ) 2 i=1 n ( Y ¯ - Y i )2

python 复制代码
#4种误差评价指标
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
# 预测值
y_pred = ridge_reg.predict(X)
# 计算均方误差(MSE)
MSE = mean_squared_error(y, y_pred)
# 计算均方根误差(RMSE)
RMSE= np.sqrt(mse)
# 计算平均绝对误差(MAE)
MAE= mean_absolute_error(y, y_pred)
# 计算 R 方(决定系数)
R_squre = r2_score(y, y_pred)
print("均方误差:", MSE )
print("均方根误差:", RMSE)
print("平均绝对误差:", MAE)
print("R方误差系数:", R_squre)
相关推荐
AI technophile几秒前
OpenCV计算机视觉实战(6)——经典计算机视觉算法
opencv·算法·计算机视觉
qq_584598922 分钟前
day30python打卡
开发语言·人工智能·python·算法·机器学习
zhangpeng4555479404 分钟前
C++--综合应用-演讲比赛项目
开发语言·c++·算法
霜羽689215 分钟前
【数据结构篇】排序1(插入排序与选择排序)
数据结构·算法·排序算法
啊我不会诶16 分钟前
CF每日4题(1300-1400)
开发语言·c++·算法
jllllyuz19 分钟前
基于支持向量机(SVM)的P300检测分类
机器学习·支持向量机·分类
JK0x0723 分钟前
代码随想录算法训练营 Day51 图论Ⅱ岛屿问题Ⅰ
算法·深度优先·图论
freyazzr27 分钟前
Leetcode刷题 | Day64_图论09_dijkstra算法
数据结构·c++·算法·leetcode·图论
珊瑚里的鱼36 分钟前
【滑动窗口】LeetCode 1004题解 | 最大连续1的个数 Ⅲ
开发语言·c++·笔记·算法·leetcode
L_cl1 小时前
【Python 算法零基础 4.排序 ② 冒泡排序】
数据结构·python·算法