机器学习基础③——数据降维(filter,PCA),数据集加载,特征值和目标值,transform和predict

本文介绍了如何使用Python的scikit-learn库进行数据降维,包括过滤式(VarianceThreshold)、嵌入式(PCA)方法,以及在实际案例中对用户行为数据的预处理。同时提及了机器学习中的监督学习、无监督学习等分类和模型开发流程。
摘要由CSDN通过智能技术生成
import sklearn
from sklearn.feature_selection import VarianceThreshold
from sklearn.decomposition import PCA
import pandas as pd

"""数据降维"""
'''①过滤式(删除低方差特征),嵌入式(正则化),包裹式(递归特征消除)'''
'''②PCA降维'''
# 过滤式特征选择
def var():
    # 实例化
    var = VarianceThreshold(threshold=0.0) # threshold指定方差的阈值 默认为0
    # 调用fit_transform
    data = var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])
    print(data)
    return None

if __name__ == '__main__':
    var()

# PCA降维(特征数量大于100时使用)
def pca():
    # 实例化
    pca = sklearn.decomposition.PCA(n_components=0.9) # n_components指定降维后的特征数量 默认为None
    # 调用fit_transform
    data = pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])
    print(data)
    return None

if __name__ == '__main__':
    pca()

#把用户分成不同的类别 

orders = pd.read_csv(r"E:\AI课程笔记\机器学习\orders.csv")
products = pd.read_csv(r"E:\AI课程笔记\机器学习\products.csv")
prior = pd.read_csv(r"E:\AI课程笔记\机器学习\order_products__prior.csv")
aisles = pd.read_csv(r"E:\AI课程笔记\机器学习\aisles.csv")

# 合并四张表
_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'])
mt.head(10)

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

#PCA
pca = PCA(n_components=0.9)
data = pca.fit_transform(cross)
data.shape

"""机器学习算法分类:
1.监督学习:①分类:knn,贝叶斯,决策树,决策树和随机森林,逻辑回归,神经网络②回归:线性回归,岭回归③标注:svm,隐马尔科夫模型
2.无监督学习:k-means,聚类
3.半监督学习:深度学习
4.强化学习
5.迁移学习:"""

"""模型=算法+数据+模型参数"""
"""机器学习开发流程:①明确是分类还是回归问题②数据的采集和清洗③特征工程④模型训练⑤模型评估⑥模型优化⑦模型上线(模型部署),以API的形式提供服务"""

sklearn.datasets.load_iris() # 加载小规模数据集
sklearn.datasets.fetch_20newsgroups() # 下载大规模数据集

from sklearn.datasets import load_iris
li = load_iris()
li.data # 获取特征值
li.target # 获取目标值
li.DESCR # 获取描述信息

# 小规模分类数据集划分
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(li.data,li.target,test_size=0.25)
print("训练集的特征值和目标值:\n",x_train,y_train)
print("测试集的特征值和目标值:\n",x_test,y_test)

#大规模分类数据集划分
from sklearn.datasets import fetch_20newsgroups
news = fetch_20newsgroups(subset='all')
print(news.data)
print(news.target)
print(news.DESCR)

# 回归数据集划分
from sklearn.datasets import boston_house_prices
boston = boston_house_prices.load_data()
print(boston.data)
print(boston.target)
print(boston.DESCR)

#转化器(实现特征工程的API)
#fit_transform()方法(转化器) = fit() + transform()  fit()用于生成平均值和标准差 transform()用于将数据转换成标准的数据

#估计器(实现机器学习算法的API)
#fit()方法(估计器) = fit() + predict()  fit()用于生成模型 predict()用于预测
#score()方法(估计器) = score() + predict()  score()用于评估模型 predict()用于预测

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字生命Allen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值