栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

机器学习-DAY04-DAY05

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

机器学习-DAY04-DAY05

1.数据的降维之特征选择

降维指特征的数量

数据降维的方法:1.特征选择;2.主成分分析

1.1特征选择

特征选择的原因:冗余:部分特征的相关度高,容易消耗计算机性能

                             噪声:

sklearn特征选择的API: sklearn.feature_selection.VarianceThreshold

PCA(主成分分析):特征数量达到上百的时候,考虑数据的简化问题;特征数量减少,数据也会改变

 n_components:小数0-1  90%   最高在90-95%之间

1.2特征分析案例

 2.机器学习的算法及其开发流程

(1)算法是核心,数据和计算是基础

(2)找准定位,大部分复杂模型的算法设计都是计算机工程师在做,而我们分析很多的数据、分析具体的业务、应用常见的算法、特征工程调参数优化

我们应该怎么做:

1.学会分析问题,使用机器学习算法的目的,想要算法完成何种任务

2.掌握算法基本思想,学会对问题用相应的算法解决

3.学会利用库或者框架解决问题

2.1机器学习的算法

 数据类型不同,机器学习应用的算法不一样

 监督学习:有特征值和目标值

非监督学习:特征值   很多个样本(比如:1000个样本)

分类:离散型数据类型

回归:连续性数据类型

 

 

 2.2机器学习的开发流程

数据来源:1.公司本身就有数据;2.合作来的数据;3.购买的数据

开发流程:

(1)原始数据中应明确问题做什么,建立模型:根据数据类型划分应用种类

(2)数据的基本处理:pd去处理数据(缺失值,合并表。。。)

(3)特征工程(特征进行处理)(重要环节)

(4)寻找对应算法:分类、回归,进行预测

                模型 = 算法 + 数据

(5)模型的评估,判定使用效果,以确定、修改或更改现有算法

(6)直接上线使用,以API形式提供

from sklearn.feature_selection import VarianceThreshold
from sklearn.decomposition import PCA
import pandas as pd

# 读取数据
prior = pd.read_csv("./data/……文件1路径")
products = pd.read_csv("./data/……文件2路径")
orders = pd.read_csv("./data/……文件3路径")
aisles = pd.read_csv("./data/……文件4路径")
# 合并四张表到一张表(用户-物品类别)
_mg = pd.merge(prior,products,on=['product_id', 'product_id'])
_mg = pd.merge(_mg, orders, on=['order_id', 'order_id'])
mt = pd.merge(_mg,aisles,on=['aisle_id','aisle_id'])

# 数据查看(前10个)
mt.head(10)

# 交叉表(特殊的分组工具)
cross = pd.crosstab(mt['user_id'],mt['aisle'])

# 打印交叉表前十个数据
cross.head(10)

# 进行主成分分析
pca = PCA(n_components=0.9)
data = pca.fit_transform(cross)
# 显示数据形状
sh = data.shape
print(sh)

def var():
    """
    方差特征选择-删除低方差的特征
    :return: None
    """
    var = VarianceThreshold(threshold=0.0)
    data = var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])
    print(data)
    return None

def pca():
    """
    主成分分析进行降维
    :return: none
    """
    pca = PCA(n_components=0.9)  # n_components=0.9 保留90%的数据
    data = pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])
    print(data)
    return None

if __name__ == "__main__":
    pca()
3.sklearn数据集 

将数据集分为训练集(一般75%)、测试集(一般25%)

 

sklearn数据集划分API:sklearn.model_selection.train_test_split

 

 

 

 

 4.转化器与估计器 

fit_transform():输入数据直接转换

 fit():输入数据,但不做事情

transform():进行数据的转换

  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/918750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号