sklearn学习(5)线性回归和逻辑回归

sklearn的线性回归在LinearRegression类,而逻辑回归在LogisticRegression类

导入相关库

复制代码
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report
from sklearn.linear_model import LogisticRegression, LinearRegression
import numpy as np
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt

线性回归生成数据并划分数据集和测试集

复制代码
#生成数据
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
#划分数据集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

训练并预测

复制代码
#创建线性回归
lr = LinearRegression()
#训练
lr.fit(X_train, y_train)
#获取权重和偏置
print(lr.intercept_[0],lr.coef_[0])
#预测
y_predict = lr.predict(X_test)

#评估并绘图

复制代码
#评估性能
mse = mean_squared_error(y_test, y_predict)
r2 = r2_score(y_test, y_predict)
print(f"均方误差 (MSE): {mse:.2f}")
print(f"R² 分数: {r2:.2f}")
#绘制
plt.scatter(X_test, y_test, color='blue')
plt.plot(X_test, y_predict, color='red')
plt.xlabel('X')
plt.ylabel('y')
plt.show()

逻辑回归加载数据并标准化划分数据集和测试集

复制代码
iris=load_iris()
x=iris.data
y=iris.target

#标准化
sc=StandardScaler()
x=sc.fit_transform(x)
#划分训练集和测试集
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2)

创建逻辑回归并预测

复制代码
#创建逻辑回归
lr=LogisticRegression()
#参数解释
#penalty='l2',表示正则化方式,默认是l2,还有l1
#dual=False,表示是否使用对偶形式,默认是False,只有当penalty='l2'且solver='liblinear'时可以使用
#tol=0.0001,表示停止迭代的阈值,默认是0.0001
#C=1.0,表示正则化强度的倒数,默认是1.0,值越小正则化越强
#fit_intercept=True,表示是否计算截距,默认是True
#intercept_scaling=1,表示截距的缩放因子,默认是1
#class_weight=None,表示每个类别的权重,默认是None,表示所有类别权重相同
#random_state=None,表示随机数种子,默认是None
#solver='lbfgs',表示优化算法,默认是lbfgs,还有newton-cg、sag、saga、liblinear等
#max_iter=100,表示最大迭代次数,默认是100
#multi_class='auto',表示多分类问题的处理方式,默认是auto,还有ovr、multinomial等
#verbose=0,表示是否输出日志信息,默认是0,表示不输出
#warm_start=False,表示是否使用热启动,默认是False
#n_jobs=None,表示并行计算的核数,默认是None,表示使用全部核数
#训练
lr.fit(x_train,y_train)#这里会计算模型参数
#预测
y_predict=lr.predict(x_test)

评估

复制代码
print(y_test==y_predict)
aurr=accuracy_score(y_test,y_predict)
print("准确率:",aurr)
#分类报告
print(classification_report(y_test,y_predict,target_names=iris.target_names))
相关推荐
2601_963016268 小时前
统一消息与事件调用:如何用微信接口把微信自动化做成稳健中台?
大数据·运维·人工智能·微信·自动化
aneasystone本尊8 小时前
学习 OpenMontage 的零成本视频制作
人工智能
ACGkaka_9 小时前
Spring Boot 实战(四十二):集成 Spring AI 六大场景
人工智能·spring boot·spring
海海不掉头发9 小时前
机器学习实战:从零掌握集成学习(RF/XGBoost/GBDT/AdaBoost)—— 附泰坦尼克号、红酒分类、加州房价全流程解析
机器学习·分类·集成学习
lkshop9 小时前
跨境电商 GEO 实战:如何让独立站被 AI 搜索优先推荐
人工智能·chatgpt·geo
西柚小萌新9 小时前
【人工智能:Agent】--零基础上手 Codex 教程
人工智能
欣慰的猫咪9 小时前
GitHub Copilot 正式成为 JetBrains AI Assistant 的原生默认 Agent 之一
人工智能·github·copilot
蓝速科技9 小时前
蓝速科技视觉 3D 全息仓 AI 数字人一体机深度评测
人工智能·科技·3d
山东云弈创峰科技17 小时前
山东云弈创峰:基于多模态AI的跨境供应链数字化重构
人工智能·重构
智慧景区与市集主理人17 小时前
巨有科技乡村农文旅智慧建设|适配乡村短板,打造轻量长效数字业态
人工智能·科技