维度是指的是数组的维度
降维:维度:特征的数量
数据降维:
特征选择的原因:
sklearn特征选择API : sklearn.feature_selsection.VarianceThrehold
VarianceThreshold(代码演示)
code(过滤式):
def var():
'''特征选择-删除低方差的特征'''
var = VarianceThreshold(threshold=0.0) # 这里就是删除方差为0的特征 把差不多的特征给删除掉
data = var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])
print(data)
return None
if __name__ == "__main__":
# dictvec()
# hanzivec()
# tfidfvec()
# mm()
# stand()
# imp()
var()
输出:
[[2 0]
[1 4]
[1 1]]
其他特征选择方法:
sklearn主成分分析API
sklearn.decomposition
PCA: 特征数量达到上百个时候,考虑数据的简化问题。数据也会改变,特征数量也会减少。数据样本少的时候,就没必要进行主成分分析。
高维度数据容易出现的问题: 特征之间是相关的
def pca():
'''主成分分析进行特征降维'''
pca = PCA(n_components= 0.9 )
data = pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])
print(data)
return None
if __name__ == "__main__":
# dictvec()
# hanzivec()
# tfidfvec()
# mm()
# stand()
# imp()
# var()
pca()
输出:
[[ 1.22879107e-15 3.82970843e+00]
[ 5.74456265e+00 -1.91485422e+00]
[-5.74456265e+00 -1.91485422e+00]]
算法
是核心 数据和计算
是基础库
或者框架
解决问题两大数据类型:
计算数据
,所有这些数据全部是整数,而且不可以再进行细分,也不能进一步提高他们的精度。某个范围内取任一数
,即变量的取值可以是连续的,如长度 时间 质量值等 这类整数通常是非整数 含有小数部分。概念: 分类是监督学习的一个核心问题 在监督学习中 当输出变量取有限个离散值时,预测问题变成为分类问题。最基础的便是二分类问题 就是判断是非 从两个类别中选择一个作为预测结果。
数据来源
原始数据处理: (机器学习开发流程)
机器学习算法的分类:
监督学习: 是有特征值和目标值
非监督学习: 只有特征值
分类: 目标值离散型
回归:连续性
总结:
监督学习 -> 分类回归 -> 输入数据有特征有标签 即是有标准答案
无监督学习 -> 聚类 -> 输入有特征无标签 即是无标准答案
模型: 算法+数据
机器学习一般的数据集一般会划分为两个部分:
训练数据: 用于训练 构建模型
测试数据: 用于训练,构建模型
划分训练集(75%)和测试集(25%)
建立模型(算法+数据)和评估模型
sklearn数据集划分API
sklearn.model_selsection.train_test_split
from sklearn.datasets import load_iris
# 加载并返回鸢尾花数据集
li = load_iris()
print("获取特征值") # 150个
print(li.data)
print("获取目标值")
print(li.target) # 三种类别
print(li.DESCR)
对数据集进行分割
code:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载并返回鸢尾花数据集
li = load_iris()
# print("获取特征值") # 150个
# print(li.data)
# print("获取目标值")
# print(li.target) # 三种类别
# print(li.DESCR)
# 注意返回值 返回值包含训练集x_train y_train和 测试集x_test y_train
# x 数据集的特征值
# y 数据集的标签值
x_train,x_test,y_train,y_test = train_test_split(li.data,li.target,test_size= 0.25)
print("训练集特征值和目标值: ",x_train,y_train)
print("测试集特征值和目标值: ",x_test,y_test)
#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: guosihan
@file: sklearn_test.py
@time: 2020/05/15
@desc:
"""
from sklearn.datasets import load_iris,fetch_20newsgroups,load_boston
from sklearn.model_selection import train_test_split
# 加载并返回鸢尾花数据集
li = load_iris()
# print("获取特征值") # 150个
# print(li.data)
# print("获取目标值")
# print(li.target) # 三种类别
# print(li.DESCR)
# 注意返回值 返回值包含训练集x_train y_train和 测试集x_test y_train
# x 数据集的特征值
# y 数据集的标签值
# x_train,x_test,y_train,y_test = train_test_split(li.data,li.target,test_size= 0.25)
# print("训练集特征值和目标值: ",x_train,y_train)
# print("测试集特征值和目标值: ",x_test,y_test)
# news = fetch_20newsgroups(subset='all')
# print(news.data)
# print(news.target)
lb = load_boston()
print("获取特征值")
print(lb.data)
print("获取目标值")
print(lb.target)