没关系的,有三分钟热度,就有三分钟收获。|

玥瑕

园龄:2年11个月粉丝:1关注:1

数学建模-逻辑回归

逻辑回归

1 作用

解决二分类问题

回归和分类的区别

回归模型的输出是连续的,分类模型的输出是离散的。

逻辑回归是什么

逻辑回归=线性回归+sigmoid函数
中的x替换为线性函数image

线性回归

y=w*x+b

sigmoid函数


1.定义:Sigmoid函数常被用作神经网络的激活函数,将变量映射到0,1之间。
2.适用场景:
优点:平滑、易于求导。
缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。

实现代码

样例数据:
image
代码:

#加载数据

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 中国大陆许可协议进行许可。

posted @   玥瑕  阅读(224)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起