前言
- 蛋肥计划搭建基础的逻辑回归模型。
准备
时间:2021/06/30
系统环境:Windows 10
所用工具:Jupyter Notebook\Python 3.0
涉及的库:pandas\train_test_split\LogisticRegression\accuracy_score\classification_report
搭建逻辑回归模型
蛋肥想法:数据集来源于阿里云天池,对鱼的种类进行逻辑回归分类。
#读取数据集
import pandas as pd
df=pd.read_csv(r"C:\Users\Archer\Desktop\Fish.csv")
#选取自变量、因变量
X=df.drop(columns="Species")
Y=df["Species"]
#划分训练集、测试集,测试集占20%
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2,random_state=1)
#搭建逻辑回归模型
from sklearn.linear_model import LogisticRegression
regr=LogisticRegression()
regr.fit(X_train,Y_train)
获取预测准确度
蛋肥想法:通过测试集数据,检验鱼种类预测准确度,测得准确度为75%。
#预测结果评分
from sklearn.metrics import accuracy_score
Y_pred=regr.predict(X_test)
score=accuracy_score(Y_pred,Y_test)
print(str(score))
获取预测概率
蛋肥想法:逻辑回归模型的本质是预测概率,而不是直接预测具体类别,通过代码更直观地观察测试集数据的概率分布情况。
#预测概率,regr.classes_为每个位置的概率分别对应的类别标签
Y_pred_=regr.predict_proba(X_test)
data=pd.DataFrame(Y_pred_,columns=list(regr.classes_))
获取逻辑回归系数
print(str(regr.coef_[0]))
print(str(regr.intercept_))
获取模型命中率
#模型命中率
from sklearn.metrics import classification_report
print(classification_report(Y_test,Y_pred))
总结
- 如果要对离散变量进行预测,则要使用分类模型,分类模型与回归模型的区别在于其预测的变量不是连续的,而是离散的一些类别。