Python机器学习:Scikit-learn简单使用包含聚类、分类、降维、回归

2024.02前Python学习小结

1、Python数据分析:对饮食与健康数据的分析与可视化
2、Python机器学习:Scikit-learn简单使用
3、Python深度学习:Tensorflow简单使用



前言

本文旨在对以往学习的相关内容进行总结回顾,通过Scikit-learn对饮食与健康数据进行处理,因此具备以下特点:

  • 练习目的,类似问题尽量使用多种方法
  • 以锻炼方法为目的,不求用法非常贴切
  • 代码部分尽量详细说明

一、相关说明

1.Scikit-learn特点

选择Scikit-learn作为机器学习主要内容是因为:

  1. 相对简单,不需要过多设置
  2. 能很好和seaborn配合进行可视化
  3. 包含数据处理方法,归一化、标准化两行就行
  4. 内容多,聚类、分类、回归,监督、无监督都有
  5. 评估方法多,交叉验证尤其全能充分利用有限的数据,适合练习

2.本文任务

本文期望将几类方式都涉及,必然的每部分不会太详细、贴切。

  1. 分类:LogisticRegressionCV,作生活习惯方面分类。
  2. 降维:主成分分析,减少属性
  3. 线性回归:LinearRegression,设置假索引,对BMI指标进行拟合。
  4. 聚类/K-Means:Agglomerative Clustering
  5. 其他:归一化、标准化、评估

二、数据说明及预处理

1.引入库

代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.linear_model import LogisticRegressionCV ## 分类、回归算法
from sklearn.model_selection import train_test_split  ## 数据及划分、检验
from sklearn.neighbors import KNeighborsClassifier ## knn算法,一个直观的分类算法
from sklearn.preprocessing import MinMaxScaler, StandardScaler ## 归一化

import warnings                    ## Filter warnings
warnings.filterwarnings('ignore')

2.读入数据及清洗

先对数据进行去重和缺失值处理,同前文

#数据导入及处理
df_1 = pd.read_csv(r'D:\Pytharm\Practice\sjfenxilast\sti_sc.csv')
df_1.drop_duplicates(keep='first',inplace=True)  #删除重复
df_1['Age'] = df_1['Age'].apply(int)  #原数据年龄有太多小数
df = df_1[df_1['Age'] < 31]  #原数据基本是30以下的,只选取小于30部分

为了使得预测、分类更准确,往往需要对取值范围过大数据标准化、对文本类数据转化为数字类。

以下部分进行几类处理:

  1. 将文本类指标转化为数字型
  2. 将数据间关系进行可视化展示
  3. 对列名太复杂的进行修改方便调用
#只保留饮食习惯属性和基础信息属性
df_diet = []
df_diet=df.loc[:,['Age','Weight','Height','FAVC','FCVC','NCP','CH2O','NObeyesdad']]

#将文本类型属性转换为数字类型
df_diet.loc[df_diet['FAVC'] == 'yes', 'FAVC_'] = 1
df_diet.loc[df_diet['FAVC'] == 'no', 'FAVC_'] = 0
df_diet.drop(['FAVC'], axis="columns", inplace=True)#删除列

#也可以使用map,replace,对最后的评价属性换不换都行,replace对未定义值会保留,map会换
dict = {
   
   'Insufficient_Weight' : 0, 'Normal_Weight' : 1, 'Overweight_Level_I' : 2,
        'Overweight_Level_II':
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值