# 机器学习_概述
# 数据类型:连续性,离散型
# 算法分类
# 监督学习(特征值+目标值):(预测)
# 分类: k近邻算法 贝叶斯 决策树与随机森林 逻辑递归 神经网络
# 回归: 线性回归 岭回归
# 标注: 隐马尔可夫模型(不做要求)
# 无监督学习(只有特征值)
# 聚类: k-means
# 机器学习流程
# 建立模型:(根据数据类型划分应用种类) 模型:算法+数据
# 1,获取数据
# 2,明确问题
# 3,数据的基本处理:(pd:缺失值,合并表.....)
# 4,特征工程(特征处理),重要
# 5,找到合适的算法去预测
# 不合格 ----->换算法,特征工程再处理
# 6,模型的评估,判定效果
# ---------------------------------------------------------
# 数据集概述
from sklearn.datasets import load_iris,fetch_20newsgroups,load_boston
from sklearn.model_selection import train_test_split
# 测试集:75%
# 测试集:25% 评估模型是否有效
# 数据划分API:sklearn.model_selection.train_test_split 可把数据分为测试集,与训练集
# 数据集API:sklearn.datasets
# data.load_*() 获取小规模数据,数据包含在datasets中
# data.fetch_*(data_home=None)
# 获取大规模数据,从网络中下载data_home表示下载目录 默认 ~/scikit_learn_data/
# 上边返回的数据类型是datasets.base.Bunch(字典格式)
# data:特征数据数组 [n_sample*n_features]二维数组
# target:标签数组,是n_sample的一维数组 numpy.ndarray数组(按照标签转换后的值)
# DESC:数据描述
# feature_names:特征名,新闻数据,手写数据,回归数据没有
# target_names:标签名(目标值)
# =================================================
# 分类数据集
# 导入获取数据集
# iris = load_iris() # 字典格式Bunch
# sklearn.model_selection.train.test_split(*arrays,**options)
# x_train,x_test,y_train,y_test=train_test_split(x=iris.data,y=iris.target,test_size=0.25)
"""
x:数据集的特征值 (通常有多个)
y:数据集的标签值
test_size:测试集大小,一般为float,集测试集所占比例默认75%
random_state:随机种子,不同的种子,会造成不同的采样结果
return 训练集,测试集,训练标签,测试标签 (接受时注意顺序不要改变)
"""
# ----- 分类大数据集 ------------------
# sklearn.datasets.fetch_20newsgroups(data_home=None,subset="train")
# subset:"train" 或者 "test","all"
# new = fetch_20newsgroups(data_home=None,subset="all") # 默认~/scikit_learn_data/
# print(type(new))
# print(new.target)
# ==========================================================
# 回归数据集
# sklearn.datasets.load_boston()
# bos = load_boston()
# print(bos.data.shape)
# print(bos.feature_names)
# print(bos.target)
# print(bos.DESCR)
# ========================================================
# 转换器
# :fit_transform = fit(负责产生均值,方差等数据) + transform(根据产生的方差等转换数据)
# 预估器estimator :一类实现了算法的API
# 分类估计器
# sklearn.neighbors k近邻
# sklearn.naive_bayes 贝叶斯
# sklearn.linear_model.LogisticRegression 逻辑回归
# sklearn.tree 决策树与随机森林
# 回归的估计器
# sklearn.linear_model.LinearRegression 线性回归
# sklearn.linear_model.Ridge 岭回归