数学建模-逻辑回归
逻辑回归
1 作用
解决二分类问题
回归和分类的区别
回归模型的输出是连续的,分类模型的输出是离散的。
逻辑回归是什么
逻辑回归=线性回归+sigmoid函数
中的x替换为线性函数
线性回归
y=w*x+b
sigmoid函数
1.定义:Sigmoid函数常被用作神经网络的激活函数,将变量映射到0,1之间。
2.适用场景:
优点:平滑、易于求导。
缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。
实现代码
样例数据:
代码:
#加载数据
import pandas as pd
import statsmodels.api as sm
import pylab as pl
import numpy as np
df=pd.read_excel("./二分类水果数据.xlsx")
df_data=df.iloc[0:37]
print(df)
from xarray.plot.utils import plt
import seaborn as sns
sns.countplot(df_data['fruit_name'],label="Count")
plt.show()
#创建训练集和测试集
X = df_data[['mass', 'width', 'height', 'color_score']]
y = df_data['fruit_name']
#数据较少不做交叉预测
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
#逻辑回归
from sklearn.linear_model import LogisticRegression
logit = LogisticRegression()
logreg=logit.fit(X, y)
print('Accuracy of Logistic regression classifier on training set: {:.2f}'
.format(logreg.score(X_train, y_train)))
print('Accuracy of Logistic regression classifier on test set: {:.2f}'
.format(logreg.score(X_test, y_test)))
#输出
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
data=df.iloc[38:42]
X_data=data[['mass', 'width', 'height', 'color_score']]
y_data=data['fruit_name']
pred_y= logreg.predict(X_data)#进行预测
print(pred_y)
------------
['orange' 'orange' 'orange' 'apple']
本文作者:玥瑕
本文链接:https://www.cnblogs.com/lxz2001/p/16424804.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步