作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师
主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享
收藏点赞不迷路 关注作者有好处
文末获得源码
机器学习分为:
有监督学习:数据带有标签
无监督学习:数据没有标签,根据属性聚类
在机器学习有监督学习中大致可以分为两大任务,一种是回归任务,一种是分类任
务;那么这两种任务的区别是什么呢?按照较官方些的说法,输入变量与输出变量均为
连续变量的预测问题是回归问题,输出变量为有限个离散变量的预测问题成为分类问题。
回归:
举个例子,输入一个人每日的运动时间、睡眠时间、工作时间、饮食等一些特征来
预测一个人的体重,一个人的体重的值可以有无限个值。所以预测的结果是无限的、不
确定的连续数值。这样的机器学习任务就是回归任务。
分类:
如果利用一个人每日的运动时间、睡眠时间、工作时间、饮食等一些特征来判断这
个人的身体状况是否健康,那么最终的判断的结果就只有两种健康和不健康。这样的输
出结果为离散值,预测的结果也是一个有限的数值来代表种类。
案例:根据提供的乳腺癌患者的检测指标进行训练后预测患癌症的结果
数据集可私信博主获取
#逻辑回归预测乳腺癌
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.linear_model import LogisticRegression #逻辑回归模型
from sklearn.metrics import classification_report
#读取数据
dataset = pd.read_csv("breast_cancer_data.csv")
#print(dataset)
#提取X 特征
X = dataset.iloc[:, :-1]
#print(X)
#提取Y 标签(分类结果)
Y = dataset['target']
#print(Y)
#划分测试集和数据集
x_train,x_test,y_train,y_test=train_test_split(X,Y,test_size=0.2)
#进行数据的归一化
sc = MinMaxScaler(feature_range=(0,1))
x_train = sc.fit_transform(x_train)
x_test = sc.fit_transform(x_test)
#print(y_test)
#逻辑回归模型搭建
lr = LogisticRegression() #创建模型对象
lr.fit(x_train,y_train) #开始模型训练
#打印模型参数
#print('W',lr.coef_)
#print('b',lr.intercept_)
#利用训练好的模型进行推理测试
pre_result = lr.predict(x_test)
#print(pre_result)
#打印预测结果的概率
pre_result_proba = lr.predict_proba(x_test)
#print(pre_result_proba)
#读取恶性肿瘤的概率
pre_list = pre_result_proba[:, 1]
#print(pre_list)
#设置阈值以调整检测的比例
thresholds = 0.3
#设置保存结果的列表
result = []
result_name = []
for i in range(len(pre_list)):
if pre_list[i]>thresholds:
result.append(1)
result_name.append("恶性")
else:
result.append(0)
result_name.append("良性")
#打印阈值调整后的结果
#print(result)
#print(result_name)
#输出结果的精确率和召回还有f1值
report = classification_report(y_test,result,labels=[0,1],target_names=['良性肿瘤','恶性肿瘤'])
print(report)
预测结果:
precision recall f1-score support
良性肿瘤 1.00 0.86 0.93 72
恶性肿瘤 0.81 1.00 0.89 42
accuracy 0.91 114
macro avg 0.90 0.93 0.91 114
weighted avg 0.93 0.91 0.91 114
相关作品展示
基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目
基于Nodejs、Vue等前端技术开发的前端实战项目
基于微信小程序和安卓APP应用开发的相关作品
基于51单片机等嵌入式物联网开发应用
基于各类算法实现的AI智能应用
基于大数据实现的各类数据管理和推荐系统