机器学习的一些常见算法介绍【线性回归,岭回归,套索回归,弹性网络】

2023-10-07 20:30

本文主要是介绍机器学习的一些常见算法介绍【线性回归,岭回归,套索回归,弹性网络】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列优秀文章目录

在vmbox里面安装Ubuntu16.04并且配置jdk以及Hadoop配置的教程【附带操作步骤】_张小鱼༒的博客-CSDN博客

centos7配置静态网络常见问题归纳_张小鱼༒的博客-CSDN博客

jupyter notebook第八章pyecharts库的一些案例分析加相关函数的解析_jupyter安装pyecharts_张小鱼༒的博客-CSDN博客

python当中的第三方wxPython库的安装解答_pip install wx_张小鱼༒的博客-CSDN博客

文章目录

目录

系列优秀文章目录

前言

一、机器学习概述

1.1、概述

1.2、理性认识

1.3、机器学习、数据分析、数据挖掘区别与联系

二、一些案例介绍

1.基于一元线性回归公式和向量形式计算线性权重和偏置值

2.梯度下降法的使用

3、批量梯度下降法

4、多项式线性回归

 5、使用四种线性回归对波斯顿房价进行分析

总结


前言

本篇主要介绍机器学习的一些算法,例如一元线性回归,岭回归,套索回归,弹性网络回归,逻辑斯蒂回归,knn算法等等


提示:以下是本篇文章正文内容,下面案例可供参考

一、机器学习概述

1.1、概述

  1. 机器学习是一门从数据中研究算法的科学学科。
  2. 机器学习直白来讲,是根据已有的数据,进行算法选择,并基于算法和数据构建模型,最终对未来进行预测。
  3. 通过数据训练出一个模型->预测未知属性。

1.2、理性认识

输入: x ∈ X(属性值)
输出: y ∈ Y(目标值 )
获得一个目标函数(target function):
f : X ∈ Y(理想的公式)
输入数据:D = {(x1,y1),(x2,y2),…,(xn,yn)}(历史信息)
最终具有最优性能的假设公式:
g : X → Y(学习得到的最终公式 )
{(Xn,Yn)} from f → ML → g
目标函数f未知(无法得到)
假设函数g类似函数f,但是可能和函数f不同
机器学习中是无法找到一个完美的函数f
机器学习
从数据中获得一个假设的函数g,使其非常接近目标函数f的效果
概念
拟合:构建的算法符合给定数据的特征
x(i) :表示第i个样本的x向量
xi: x向量的第i维度的值

  1. 鲁棒性:也就是健壮性、稳健性、强健性,是系统的健壮性;当存在异常数据的时候,算法也会拟合数据过拟合和欠拟合显示
  2. 过拟合:算法太符合样本数据的特征,对于实际生产中的数据特征无法拟合–模型在这个数据集展示的特别好
  3. 欠拟合:算法不太符合样本的数据特征–训练集不好(不存在函数或者假设不对)

1.3、机器学习、数据分析、数据挖掘区别与联系

  • 数据分析:数据分析是指用适当的统计分析方法对收集的大量数据进行分析,并提取有用的信息,以及形成结论,从而对据进行详细的研究和概括过程。在实际工作中,数据分析可帮助人们做出判断;数据分析一般而言可以分为统计分析、探索性数据分析和验证性数据分析三大类。
  • 数据挖掘:一般指从大量的数据中通过算法搜索隐藏于其中的信息的过程。通常通过统计、检索、机器学习、模式匹配等诸多方法来实现这个过程。
  • 机器学习:是数据分析和数据挖掘的一种比较常用、比较好的手段
     

二、一些案例介绍

1.基于一元线性回归公式和向量形式计算线性权重和偏置值

代码如下(示例):

#定义numpy数组数据,分别基于一元线性回归公式和向量形式计算线性权重和偏置值;
#计算结果与ScikitLearn中提供的线性回归函数计算结果进行比较。
import numpy as np
import matplotlib.pyplot as plt
data = np.array([[10.95, 11.18],               #使用array函数创建二维数组[12.14, 10.43],[13.22, 12.36],[13.87, 14.15],[15.06, 15.73],[16.30, 16.40],[17.01, 18.86],[17.93, 16.13],[19.01, 18.21],[20.01, 18.37],[21.04, 22.61],[22.10, 19.83],[23.17, 22.67],[24.07, 22.70],[25.00, 25.16],[25.95, 25.55],[27.10, 28.21],[28.01, 28.12],[29.06, 28.32],[30.05, 29.18]])
x = data[:,0]         #第一列数据为自变量x,一维数组
y = data[:,1]         #第二列数据为因变量y,一维数组
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.figure()
plt.scatter(x,y,s = 40,c = 'b',marker = 'o',alpha = 0.7)
plt.title('数据分布情况')
plt.show()#第一种方法:按照一元线性回归公式进行计算
temp1_sum = 0.0
temp2_sum = 0.0
for i in range(0,20):temp1_sum+=x[i]temp2_sum+=y[i]
x_avg = temp1_sum/20
y_avg = temp2_sum/20
temp1_sum = 0
temp2_sum = 0
for i in range(0,20):temp_var = x[i]-x_avgtemp1_sum=+temp_var*(y[i]-y_avg)temp2_sum=+temp_var**2
w = temp1_sum/temp2_sum
b = y_avg - w*x_avg
print('按照一元线性回归公式进行计算')
print('w = ',w)
print('b = ',b)#在散点图的基础之上增加线性回归值线
x_lim = np.array([0,32])
y_pred = w * x_lim + b
plt.figure()
plt.scatter(x,y,s = 40,c = 'b',marker = 'o',label = '样本点')
plt.plot(x_lim,y_pred,ls = '--',lw = 2,color = 'r',label = '回归曲线')
plt.title('一元线性回归')
plt.legend()
plt.show()#第二种方法:按照线性回归的向量形式进行计算
x_append = np.ones((20,2))
for i in range(0,20):x_append[i,0] = x[i]
temp1 = np.dot(x_append.T,x_append)
temp2 = np.linalg.inv(temp1)
temp3 = np.dot(temp2,x_append.T)
wb = np.dot(temp3,y)
print("使用向量形式计算的结果:",wb)#第三种方法:采用scikit_learn中提供的标准回归函数进行计算
from sklearn import linear_model
#定义一个线性回归对象
lnr = linear_model.LinearRegression()
#训练模型
lnr.fit(x_append,y)#必须是二维数组
print('机器学习库函数计算结果:w:%s,b:%.6f'%(lnr.coef_,lnr.intercept_))

按照一元线性回归公式进行计算
w =  0.9446170044748614
b =  0.7942590155304146

使用向量形式计算的结果: [ 0.99397832 -0.22023935]
机器学习库函数计算结果:w:[0.99397832 0.        ],b:-0.220239

2.梯度下降法的使用

代码如下(示例):

import numpy as np 
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
def costFunc(x):return 0.25*(x**4) - 2.167*(x**3)+6.25*x*x - 7*x
def gradFunc(x):return x**3 - 6.5*x**2 + 12.5*x -7
x = np.linspace(0,4.5,91)#仅学习率的梯度下降法
step = 10
xPoint = np.empty(1,)
yPoint = np.empty(1,)
grad = np.empty(1,)
eta = 0.06
initPoint = 0.1
xPoint[0] = initPoint
yPoint[0] = costFunc(initPoint)
grad[0] = gradFunc(initPoint)
plt.figure(figsize = (4.5,4.5))
plt.plot(x,costFunc(x),'b',label = '代价函数')
for i in range(step):newPoint = xPoint[i] - eta * grad[i]xPoint = np.append(xPoint,newPoint)yPoint = np.append(yPoint,costFunc(newPoint))grad = np.append(grad,gradFunc(newPoint))xx = [xPoint[i],newPoint]yy = [yPoint[i],costFunc(newPoint)]plt.plot(xx,yy,color = 'r',linewidth = 1,linestyle = '--')
colors = ['green','c','b','k','g','pink','r','0.3','0.2','0.1','0.0']
plt.scatter(xPoint,yPoint,s = 40,color = colors,marker = 'o',label = '学习率$\\eta$={:.2f}'.format(eta))
plt.title("梯度下降法示意图",fontsize = 10)
plt.legend(loc = 'upper center',fontsize = 8)
plt.show()

3、批量梯度下降法

代码如下:

import numpy as np
import matplotlib.pyplot as plt
import time
start = time.time()
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
x=np.array([[10.0,1.0],[11,1],[12,1],[13,1],[14,1]])
y=np.array([20.0,23,25,27,26])
weight=np.empty((2,),float)
print('*******批量梯度下降法********')
def Loss(real,predict):return 0.5*np.power(np.dot(real-predict,real-predict),2)
def Cal(x,w):return np.matmul(x,w)
weight=np.random.random(np.shape(weight))
weight=[1.0,1.0]
loss_arr=np.empty([])
plt.scatter(x[:,0],y,s=20,marker='*')
eta=0.002
STEP=4
for step in range(STEP):if(step%1==0):plt.plot([9.5,14.5],[9.5*weight[0]+weight[1],14.5*weight[0]+weight[1]],label='第%d次'%(step))print('第%d次迭代'%(step+1))pred=Cal(x,weight)loss=Loss(y.T,pred)print('损失函数值为:%2f'%loss)loss_arr=np.append(loss_arr,loss)delta_w=eta*np.matmul((pred-y),x)weight-=delta_w
plt.plot([9.5,14.5],[9.5*weight[0]+weight[1],14.5*weight[0]+weight[1]],label='第%d次'%(STEP))
plt.title('批量梯度下降法线性回归')
plt.legend(loc='upper left')
plt.show()
*******批量梯度下降法********
第1次迭代
损失函数值为:202248.000000
第2次迭代
损失函数值为:10553.813310
第3次迭代
损失函数值为:682.582831
第4次迭代
损失函数值为:84.893686

4、多项式线性回归

代码如下:

#生成符合二次多项式特征的数据,并使用多项式回归进行拟合
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
from sklearn.linear_model import  LinearRegression
from sklearn.preprocessing import PolynomialFeatures#导入多项式特征模块
x = np.random.uniform(-3,3,size = 200)
X = x.reshape(-1,1)#转换为二维数据,与PolynomialFeatures匹配
y = 1.3*x**2 + 0.9*x + 4 +np.random.normal(0,0.8,size = 200)#生成y数据
plt.scatter(x,y,label = '含噪声样本')
degree = 2
poly = PolynomialFeatures(degree,include_bias = True)#定义多项式特征对象
#poly.fit(X,y)#计算多项式输出特征
#X2 = poly.transform(X)#转换多项式特征
X2 = poly.fit_transform(X,y)#与上面的一样
lr = LinearRegression()#定义线性回归对象
lr.fit(X2,y)#用转换后的多项式特征数据训练线性模型
y_predict = lr.predict(X2)
print('多项式回归评分结果:',lr.score(X2,y))
plt.plot(np.sort(x),y_predict[np.argsort(x)],'r',label = '多项回归曲线')
plt.title('多项式线性回归(degree = %d)'%degree)
plt.legend()
#np.sort(x)#返回x排序后的结果
#np.argsort(x)#返回x排序后的序号结果
plt.show()

 5、使用四种线性回归对波斯顿房价进行分析

波斯顿房价数据的属性说明:

CRIM--城镇人均犯罪率                                                              ------【城镇人均犯罪率】
ZN - 占地面积超过25,000平方英尺的住宅用地比例。               ------【住宅用地所占比例】
INDUS - 每个城镇非零售业务的比例。                                      ------【城镇中非商业用地占比例】
CHAS - Charles River虚拟变量(如果是河道,则为1;否则为0  ------【查尔斯河虚拟变量,用于回归分析】
NOX - 一氧化氮浓度(每千万份)                                             ------【环保指标】
RM - 每间住宅的平均房间数                                                      ------【每栋住宅房间数】
AGE - 1940年以前建造的自住单位比例                                     ------【1940年以前建造的自住单位比例 】
DIS -波士顿的五个就业中心加权距离                                        ------【与波士顿的五个就业中心加权距离】
RAD - 径向高速公路的可达性指数                                             ------【距离高速公路的便利指数】
TAX - 每10,000美元的全额物业税率                                          ------【每一万美元的不动产税率】
PTRATIO - 城镇的学生与教师比例                                             ------【城镇中教师学生比例】
B - 1000(Bk - 0.63)^ 2其中Bk是城镇黑人的比例                   ------【城镇中黑人比例】
LSTAT - 人口状况下降%                                                            ------【房东属于低等收入阶层比例】
MEDV - 自有住房的中位数报价, 单位1000美元                         ------【自住房屋房价中位数】

代码如下:

#使用四种线性回归对波斯顿房价做出分析
import numpy as np
np.set_printoptions(precision = 2)#设定输出为数组格式
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
import warnings
warnings.filterwarnings('ignore')
from sklearn import datasets
#导入sklearn中的线性模型与模型验证类
from sklearn import linear_model
from sklearn import model_selection
#加载房价数据
boston = datasets.load_boston()
#采用留出法划分数据集:测试集为30%
x_train,x_test,y_train,y_test = model_selection.train_test_split(boston.data,boston.target,test_size = 0.3,random_state =1)
lnr = linear_model.LinearRegression()#定义线性回归对象
rdr = linear_model.Ridge(alpha = 0.5#岭回归对象
lsr = linear_model.Lasso(alpha = 0.5)#定义套索回归对象,tol = le-5,max_iter = 10000
enet = linear_model.ElasticNet(alpha = 1.0,l1_ratio = 0.5)#定义弹性网络回归对象
#使用线性回归模型
lnr.fit(x_train,y_train)
w1 = lnr.coef_
b1 = lnr.intercept_
print("线性回归权重值:",w1)
print("线性回归偏置值:%.2f"%b1)
y_pred1 = lnr.predict(x_test)
var1 = np.mean((y_pred1-y_test)**2)
print("线性回归模型在测试集上的均方误差:%.2f"%(var1))
score1 = lnr.score(x_test,y_test)
print("线性回归模型在测试集上的评价得分:%.2f\n"%(score1))
#使用岭回归模型
rdr.fit(x_train,y_train)
w2 = lnr.coef_
b2 = lnr.intercept_
print("岭回归权重值:",w2)
print("岭回归偏置值:%.2f"%b2)
y_pred2 = rdr.predict(x_test)
var2 = np.mean((y_pred2-y_test)**2)
print("岭回归模型在测试集上的均方误差:%.2f"%(var2))
score2 = rdr.score(x_test,y_test)
print("岭回归模型在测试集上的评价得分:%.2f\n"%(score2))
#使用套索回归模型
lsr.fit(x_train,y_train)
print("套索回归权重值:",lsr.coef_)
print("套索回归偏置值:%.2f"%lsr.intercept_)
print("套索回归迭代步数:",lsr.n_iter_)
print("套索回归模型在测试集上的均方误差:%.2f"%(lsr.score(x_train,y_train)))
print("套索回归模型在测试集上的评价得分:%.2f\n"%(lsr.score(x_test,y_test)))
#使用zip函数分别对以上四个模型进行打包压缩
models = [lnr,rdr,lsr,enet]
names = ["线性回归","岭回归","套索回归","弹性网络"]
for model,name in zip(models,names):model.fit(x_train,y_train)print("权值为:{}".format(model.coef_))print("%s偏置值:%.2f"%(name,model.intercept_))y_pred = model.predict(x_test)var = np.mean((y_pred-y_test)**2)print("%s在测试集上的均方误差:{}"%(name).format(var))score = model.score(x_test,y_test)print("%s模型在测试集上的评价得分:%.2f\n"%(name,score))
#测试alpha在不同取值下的回归效果
scores = []
alphas = [0.0001,0.0005,0.001,0.005,0.01,0.05,0.1,0.5,1,5,10,50]
for index,model in enumerate(models):scores.append([])for alpha in alphas:if index>0:model.alpha = alphamodel.fit(x_train,y_train)scores[index].append(model.score(x_test,y_test))
#以四种不同的图显示alpha1取值不同的准确率变化曲线
for i,name in enumerate(names):fig = plt.figure(i+1,figsize = (4,3))plt.xlim([0,10])plt.ylim([0.4,0.9])plt.plot(range(len(alphas)),scores[i],color = 'r',linewidth = 2)plt.title(name+'alpha取不同值的准确率')print("%s的准确率最大值:%.2f"%(name,max(scores[i])))plt.show()
#以子图显示alpha1取值不同的准确率变化曲线
fig = plt.figure(figsize=(10,7))
for i,name in enumerate(names):plt.subplot(2,2,i+1)plt.xlim([0,10])plt.ylim([0.4,0.9])plt.plot(range(len(alphas)),scores[i])plt.title(name+'alpha取不同值的准确率')print("%s的准确率最大值:%.2f"%(name,max(scores[i])))
plt.show()
线性回归权重值: [-9.85e-02  6.08e-02  5.92e-02  2.44e+00 -2.15e+01  2.80e+00  3.57e-03-1.52e+00  3.08e-01 -1.13e-02 -1.01e+00  6.45e-03 -5.69e-01]
线性回归偏置值:46.40
线性回归模型在测试集上的均方误差:19.83
线性回归模型在测试集上的评价得分:0.78岭回归权重值: [-9.85e-02  6.08e-02  5.92e-02  2.44e+00 -2.15e+01  2.80e+00  3.57e-03-1.52e+00  3.08e-01 -1.13e-02 -1.01e+00  6.45e-03 -5.69e-01]
岭回归偏置值:46.40
岭回归模型在测试集上的均方误差:19.43
岭回归模型在测试集上的评价得分:0.79套索回归权重值: [-0.07  0.06 -0.    0.   -0.    1.57  0.   -0.9   0.26 -0.01 -0.75  0.01-0.7 ]
套索回归偏置值:38.77
套索回归迭代步数: 50
套索回归模型在测试集上的均方误差:0.68
套索回归模型在测试集上的评价得分:0.74权值为:[-9.85e-02  6.08e-02  5.92e-02  2.44e+00 -2.15e+01  2.80e+00  3.57e-03-1.52e+00  3.08e-01 -1.13e-02 -1.01e+00  6.45e-03 -5.69e-01]
线性回归偏置值:46.40
线性回归在测试集上的均方误差:{}
线性回归模型在测试集上的评价得分:0.78权值为:[-9.28e-02  6.16e-02  2.83e-02  2.32e+00 -1.48e+01  2.87e+00 -1.97e-03-1.42e+00  2.92e-01 -1.19e-02 -9.26e-01  6.88e-03 -5.76e-01]
岭回归偏置值:41.48
岭回归在测试集上的均方误差:{}
岭回归模型在测试集上的评价得分:0.79权值为:[-0.07  0.06 -0.    0.   -0.    1.57  0.   -0.9   0.26 -0.01 -0.75  0.01-0.7 ]
套索回归偏置值:38.77
套索回归在测试集上的均方误差:{}
套索回归模型在测试集上的评价得分:0.74权值为:[-0.07  0.06 -0.    0.   -0.    0.61  0.02 -0.69  0.27 -0.01 -0.72  0.01-0.75]
弹性网络偏置值:43.50
弹性网络在测试集上的均方误差:{}
弹性网络模型在测试集上的评价得分:0.70

线性回归的准确率最大值:0.78 

岭回归的准确率最大值:0.79

套索回归的准确率最大值:0.79

弹性网络的准确率最大值:0.79

线性回归的准确率最大值:0.78
岭回归的准确率最大值:0.79
套索回归的准确率最大值:0.79
弹性网络的准确率最大值:0.79

 6、迭代算法

代码如下;

import sklearn.datasets as datasets
import numpy as np
from sklearn.linear_model import LogisticRegression as LR, LogisticRegressionclass LogisticRegression():def __init__(self,alpha=0.01,epochs=3):self.W = Noneself.b = Noneself.alpha = alphaself.epochs = epochsdef fit(self,X,y):self.W = np.random.normal(size=(X.shape[1]))self.b = 0for epoch in range(self.epochs):if epoch%100 == 1:print("********第%s次迭代********"%epoch)print("当前权值:",self.W)print("当前偏置值",self.b)w_derivate = np.zeros_like(self.W)b_derivate = 0for i in range(len(y)):w_derivate+=(y[i] -1/(1+np.exp(-np.dot(X[i],self.W.T)-self.b)))*X[i]b_derivate+=(y[i] -1/(1+np.exp(-np.dot(X[i],self.W.T)-self.b)))self.W = self.W + self.alpha*np.mean(w_derivate,axis=0)self.b = self.b + self.alpha*np.mean(b_derivate)return selfdef predict(self,X):p_1 = 1/(1+np.exp(-np.dot(X,self.W)-self.b))return np.where(p_1>0.5,1,0)def accuracy(pred, true):count = 0for i in range(len(pred)):if (pred[i] == true[i]):count += 1return count / len(pred)def normalize(x):return (x - np.min(x)) / (np.max(x) - np.min(x))digits = datasets.load_breast_cancer()
X = digits.data
y = digits.targetprint('数据集规模:', np.shape(X))
X_norm = normalize(X)
X_train = X_norm[:int(len(X_norm) * 0.7)]
X_test = X_norm[int(len(X_norm) * 0.7):]y_train = y[:int(len(X_norm) * 0.7)]
y_test = y[int(len(X_norm) * 0.7):]lr_self = LogisticRegression(epochs=500, alpha=0.03)
lr_self.fit(X_train, y_train)
y_pred = lr_self.predict(X_test)
print("自编逻辑斯蒂回归模型准确率:", accuracy(y_pred, y_test))clf_lr = LR()
clf_lr.fit(X_train, y_train)
y_pred2 = clf_lr.predict(X_test)print("机器学习库逻辑斯蒂回归模型准确率:", accuracy(y_pred2, y_test))

数据集规模: (569, 30)
********第1次迭代********
当前权值: [ 1.73956066 -0.01156931 -1.15917199  0.45711651  0.46040207 -0.013135491.23924975  0.22666179  1.70779234 -0.49281854 -0.50133985  0.29592582-0.39109388 -2.17097176 -1.37779733 -0.5740774   0.05305788 -1.97634564-2.06258227  2.07302302 -0.85252618 -0.77235803 -0.19870169  0.04144355-0.54630171 -0.37447985 -0.50281008 -1.03194826 -0.43102844  0.42670525]
当前偏置值 0.6656184693726089
********第101次迭代********
当前权值: [-1.36236283 -3.1134928  -4.26109548 -2.64480697 -2.64152142 -3.11505898-1.86267374 -2.87526169 -1.39413115 -3.59474203 -3.60326334 -2.80599767-3.49301737 -5.27289525 -4.47972081 -3.67600089 -3.0488656  -5.07826912-5.16450575 -1.02890047 -3.95444967 -3.87428152 -3.30062518 -3.06047994-3.6482252  -3.47640334 -3.60473357 -4.13387175 -3.53295192 -2.67521824]
当前偏置值 4.2264662880627215
********第201次迭代********
当前权值: [-3.64541622 -5.39654619 -6.54414888 -4.92786037 -4.92457482 -5.39811237-4.14572713 -5.15831509 -3.67718455 -5.87779542 -5.88631674 -5.08905107-5.77607076 -7.55594865 -6.76277421 -5.95905428 -5.331919   -7.36132252-7.44755915 -3.31195387 -6.23750307 -6.15733491 -5.58367858 -5.34353333-5.93127859 -5.75945674 -5.88778696 -6.41692514 -5.81600532 -4.95827163]
当前偏置值 4.450665474290417
********第301次迭代********
当前权值: [-5.05721197 -6.80834194 -7.95594463 -6.33965612 -6.33637057 -6.80990812-5.55752288 -6.57011084 -5.0889803  -7.28959117 -7.29811248 -6.50084682-7.18786651 -8.96774439 -8.17456996 -7.37085003 -6.74371475 -8.77311827-8.8593549  -4.72374962 -7.64929882 -7.56913066 -6.99547433 -6.75532908-7.34307434 -7.17125249 -7.29958271 -7.82872089 -7.22780107 -6.37006738]
当前偏置值 4.041335598886869
********第401次迭代********
当前权值: [-5.95660858 -7.70773855 -8.85534123 -7.23905273 -7.23576717 -7.70930473-6.45691949 -7.46950745 -5.9883769  -8.18898778 -8.19750909 -7.40024343-8.08726312 -9.867141   -9.07396657 -8.27024664 -7.64311136 -9.67251488-9.75875151 -5.62314622 -8.54869542 -8.46852727 -7.89487094 -7.65472569-8.24247095 -8.0706491  -8.19897932 -8.7281175  -8.12719768 -7.26946399]
当前偏置值 3.5836074309001096
自编逻辑斯蒂回归模型准确率: 0.9532163742690059
机器学习库逻辑斯蒂回归模型准确率: 0.935672514619883

总结

以上就是今天要讲的内容,本文仅仅简单介绍了机器学习当中几种基本算法,希望对初学者的你有所帮助。

最后欢迎大家点赞👍,收藏⭐,转发🚀,
如有问题、建议,请您在评论区留言💬哦。

这篇关于机器学习的一些常见算法介绍【线性回归,岭回归,套索回归,弹性网络】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/160244

相关文章

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初