机器学习
机器学习的数据:文件csv
mysql:1、性能瓶颈,读取速度
pandas:读取数据 真正的多线程
可用数据集:scikit-learn:数据量较小,方便学习
UCI特点:1、收录了360个数据集
2、覆盖科学、生活、经济等领域
3、数据量几十万
Kaggle特点:1、大数据竞赛平台
2、80万科学家
3、真实数据
4、数据量巨大
特征工程:
特征工程是将原始数据转换为更好的代表预测模型的潜在问题的特征的过程,从而提高了对未知数据预测的准确性
特征工程能够直接影响预测结果
scikit-learn中包含分类,回归,聚类,降维,模型选择,特征工程
数据的特征抽取
1、字典数据进行特征值化(字典特征抽取)
类sklearn.feature_extraction.DictVectorizer
DictVectorizer语法
DictVectorizer.fit_transform(X)
X:字典或包含字典的迭代器[{‘city’:北京,‘temperature’:100},{与前面的类似},{}]
返回值:返回sparse矩阵
DictVectorizer.inverse_transform(X,sparse=False) # 加上sparse=False后返回ndarray矩阵
X:array数组或sparse矩阵
返回值:转换之前的数据
DictVectorizer.get_feature_names()
返回类别名称
DictVectorizer.transform(X)
按照原先的标准转换
2、对文本数据进行特征值化(文本特征抽取)
类sklearn.feature_extraction.text.CountVectorizer
CountVectorizer语法
CountVectorizer()
返回词频矩阵
CountVectorizer.fit_transform(X)
X:文本或者包含文本字符串的可迭代对象
返回值:返回sparse矩阵
CountVectorizer.inverse_teansform(X)
X:array数组或者sparse矩阵
返回值:转换之前数据格式
CountVectorizer.get_feature_names()
返回值:单词列表
例如:cv = CountVerctorizer()
data = cv.fit_transform([“Life is short,I like python”,“Life is too long,i dislike pyhton”])
print(data.toarray()) # 转换成ndarray 格式。
默认无法进行中文
可以通过jieba包对文章进行分词,再统计。
TfidfVectorizer语法
为了解决一些无关紧要的词出现的影响 例如所以,我们,明天等。我们经常采用
tf-idf 朴素贝叶斯
Tf:term frequency:词的频率 出现次数
idf:逆文档频率inverse document frequency log(总文档数量/该词出现的文档数量)
把tf*idf叫做重要性程度。
类sklearn.feature_extraction**.text**.TfidfVectorizer
TfidfVectorizer(stop_words=None,…)
返回词的权重矩阵
TfidfVectorizer.fit_transform(X)
X:文本或包含文本字符串的可迭代对象
返回值:返回sparse
TfidfVectorizer.inverse_transform(X)
X:array数组或sparse矩阵
返回值:转换之间数据格式
TfidfVectorizer.get_feature_name()
返回值:单词列表
数据的特征预处理
数据的降维