一. 什么是机器学习
定义:机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。
数据集的构成:特征值+目标值(对于每行数据可以称之为样本,有些数据集可以没有目标值)
二. 机器学习算法分类
监督学习:
目标值:类别 -- 分类问题
算法:k-近邻算法,贝叶斯分类,决策树与随机森林,逻辑回归
目标值:连续型数据 -- 回归问题
算法:线性回归,岭回归
目标值:无 -- 无监督学习(聚类)
算法:k-means
三. sklearn应用
(一)sklearn.datasets
1. datasets.load_*()
获取小规模数据集,数据包含在datasets里
2. datasets.fetch_*(data_home=None,subest=’train’)
subest : ’train’或’test’或’all’,选择要加载的数据集。训练集的“训练”,测试集的“测试”,两者的“全部”
获取大规模数据集,需要从网上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是~/scikit_learn_data/
3. 数据集的返回值
datasets.base.Bunch(继承自字典)
dict[“key”] = values
Bunch.key = values
key:
data: 特征数据数组
target: 标签数组
DESCR: 数据描述
feature_names: 特征名
target_names: 标签名
4. 数据集划分
sklearn.model_selection.train_test_split(arrays,*options)
x: 数据集特征值
y: 数据值标签值
return:
x_train: 训练集特征值
x_test: 测试集特征值
y_train: 训练集目标值
y_test: 测试集目标值
test_size: 测试集大小,一般为float
random_state: 随机数种子
(二)文本特征提取
方法1:CountVectorizer
sklearn.feature_extraction.text.CountVectorizer(stop_words=[]) # stop_words停用的词表
CountVectorizer.fit_transform(X) X:文本或包含文本字符串可迭代对象,返回sparse矩阵
CountVectorizer.iverse_tranform(X) X:arry数组或sparse矩阵,返回转换之前数据格式
CountVectorizer.get_feature_names() 返回单词列表
方法2: TfidfVevtorizer
sklearn.feature_extraction.text.TfidfVevtorizer(stop_words=None,...)
TfidfVevtorizer.fit_transform(X) X:文本或包含文本字符串可迭代对象,返回sparse矩阵
TfidfVevtorizer.iverse_tranform(X) X:arry数组或sparse矩阵,返回转换之前数据格式
TfidfVevtorizer.get_feature_names() 返回单词列表