当前位置: 首页 > news >正文

机器学习基础(线性,逻辑回归)

一、线性回归

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。

相关关系:包含因果关系和平行关系
因果关系:回归分析【原因引起结果,需要明确自变量和因变量】
平行关系:相关分析【无因果关系,不区分自变量和因变量】

一元线性回归模型:

βo和β1是模型参数。E:是误差项。
误差项:除线性因素外的随机因素所产生的误差。

多元线性回归模型:

1.线性回归API文档参数

sklearn.linear_model.LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=None)

1)参数

fit_intercept:是否有截据,如果没有则直线过原点。

normalize:是否将数据归一化。

copy_X :是否对X复制,如果选择false,则直接对原数据进行覆盖。(即经过中心化,标准化后,是否把新数据覆盖到原数据上)

n_jobs:计算时设置的任务个数(number of jobs)。如果选择-1则代表使用所有的CPU。这一参数的对于目标个数>1(n_targets>1)且足够大规模的问题有加速作用。

2)Attributes:返回值

Coef_:对于线性回归问题计算得到的feature的系数。如果输入的是多目标问题,则返回一个二维数组(n_targets, n_features);如果是单目标问题,返回一个一维数组 (n_features,)。

intercept_ :线性模型中的独立项。

3)方法

fit(X, y[, n_jobs]) :对训练集X, y进行训练。

predict(X):使用训练得到的估计器对输入为X的集合进行预测(X可以是测试集,也可以是需要预测的数据)。

score(X, y[,]sample_weight):预测效果评分。

import pandas as pd#pandas基于numpy封装的 from matplotlib import pyplot as plt from sklearn.linear_model import LinearRegression data = pd.read_csv("data.csv") a = data.广告投入 #绘制散点图 plt.scatter(data.广告投入, data.销售额) plt.show() # corr = data.corr()#求x和y的相关系数 #估计模型参数,建立回归模型 lr = LinearRegression() x = data[['广告投入']] y = data[['销售额']] lr.fit(x, y)#训练模型, #第四步、对回归模型进行检验 """此处的score指R方""" result = lr.predict(x) score = lr.score(x, y) a = round(lr.intercept_[0],2)#查看截距 b = round(lr.coef_[0][0], 2)#查看斜率 print("线性回归模型为:y = {}x + {}.".format(b, a)) #第五步、利用回归模型进行预测 predict = lr.predict([[40], [45], [50]]) print(predict)

二、逻辑回归

在线性回归的基础上进行分类衍生出了逻辑回归

逻辑回归(LogisticRegression)是一种广泛用于二分类和多分类任务的线性模型,支持L1/L2/Elastic-Net正则化。

lr=LogisticRegression(C=0.01)

C:正则化强度的倒数,值越小正则化越强

fit() 用于训练模型;predict() 输出类别标签;score() 计算准确率。labels_count=pd.value_counts(data['Class'])可以统计data(‘class’)中每个类的个数

import pandas as pd data=pd.read_csv("creditcard.csv") from sklearn.preprocessing import StandardScaler #z-标准化 scaler=StandardScaler() data['Amount']=scaler.fit_transform(data[['Amount']]) data=data.drop(['Time'],axis=1)#axis=1,表示删除列 #绘制图形 import matplotlib.pyplot as plt from pylab import mpl #matplotlib不能显示中文,借助于pylab实现中文显示 mpl.rcParams['font.sans-serif']=['Microsoft YaHei']#显示中文 mpl.rcParams['axes.unicode_minus']= False labels_count=pd.value_counts(data['Class'])#同济data(‘class’)中每个类的个数 print(labels_count) plt.title("正负例样本数")#设置标题 plt.xlabel("类别") plt.ylabel("数量") labels_count.plot(kind='bar') plt.show() '''建立模型''' from sklearn.model_selection import train_test_split x_whole=data.drop("Class",axis=1) y_whole=data.Class x_train_w,x_test_w,y_train_w,y_test_w=train_test_split\ (x_whole,y_whole,test_size=0.3,random_state=1000) from sklearn.linear_model import LogisticRegression #逻辑回归API lr=LogisticRegression(C=0.01) lr.fit(x_train_w,y_train_w) test_predicted=lr.predict(x_test_w) result=lr.score(x_test_w,y_test_w) from sklearn import metrics print(metrics.classification_report(y_test_w,test_predicted))#获得混淆矩阵的准确值,召回值。

1. 通过train_test_split(x_whole,y_whole,test_size=0.3,random_state=1000)来切分数据,通过test_size参数为整数时取对应数量的特征,小数时取百分比的;通过random_state参数来获得对应的随机种子。

2. 通过metrics.classification_report(y_test_w,test_predicted))#获得混淆矩阵的准确值,召回值和F1值。来判断模型训练的好不好

三、评价方法

混淆矩阵:

精确率:TP/(TP+FP)

召回率:TP/(TP+FN) 多用于医疗领域系统

f1值:2*(精确率*召回率)/精确率+召回率

http://www.cnnetsun.cn/news/9510.html

相关文章:

  • 如何用智能配色工具3步打造品牌视觉一致性
  • 【OD刷题笔记】- 分苹果
  • MCP SC-400从入门到精通,构建抗量子攻击防线的关键路径
  • Bigemap Pro水文分析三大核心功能详解:从DEM到精准河网提取
  • Java学习日志--常见类库(上)
  • 直播带货APP开发的核心流程:推流端、观看端与运营端后台搭建指南
  • Wan2.2-T2V-A14B生成火星殖民基地建设构想视频
  • TSF输入法框架开发全指南:从COM组件到拼音输入法落地
  • 在线考试软件哪个好用?
  • 在AWS Athena中使用json_extract_scalar函数对某个json字段进行过滤和分组统计
  • 力扣 22. 括号生成:C++ 实现回溯 + 动态规划双解法,面试高频题必掌握
  • 【开题答辩全过程】以 基于Django的大学生理财及记账系统设计与实现为例,包含答辩的问题和答案
  • Rust的移动语义
  • 生物毒性在线分析仪:监测水体毒性的利器
  • english-13-word-25-12-11 ,get down to business 言归正传 , peripheral devices 从属设备【蓝牙主机host从机Peripheral】
  • 3倍效率!用AI自动修复Vue属性传递问题
  • OpenJob完全指南:如何快速上手高性能分布式任务调度框架
  • 基于密集型复杂城市场景下求解无人机三维路径规划的Q-learning 算法研究附Matlab代码
  • vnpy可视化技术终极指南:从零构建专业K线图表交易界面
  • 降息利好板块
  • SEO网站优化,百度就是不收录自己的网站解决方法
  • Dify 1.7.0发布后,为什么90%的AI工程师都在关注它的音频处理能力?
  • 金融级数据保护,手把手教你用PHP实现RSA加密全流程
  • 企业核心竞争力的评估方法
  • 记录va_list重复使用导致的crash
  • 二十三种设计模式(十)--外观模式
  • FSNotes深度体验:从笔记混乱到高效管理的完美蜕变
  • 【大模型必读书籍】轻松入门Cursor与MCP:AI辅助编程,零基础也能成为编程高手!
  • 【Frida Android】实战篇14:非标准算法场景 Hook 教程
  • sfy recommend