本专栏,记录B站在黑马程序员3天快速入门python机器学习视频 记录笔记
一、介绍
机器学习定义:
通过数据的学习,得到模型,然后用于对新数据进行预测。
机器学习主要分类
- 监督学习:分类、回归
- 无监督学习:聚类
开发流程
- 获取数据
- 数据处理
- 特征工程
- 算法训练
- 模型评估
二、数据库 sklearn的使用
Sklearn安装要求Python(>=2.7 or >=3.3)、NumPy (>= 1.8.2)、SciPy (>= 0.13.3)。如果已经安装NumPy和SciPy,安装scikit-learn可以使用
pip install -U scikit-learn
使用方法
from sklearn import datasets#引入数据集,sklearn包含众多数据集
from sklearn.model_selection import train_test_split#将数据分为测试集和训练集
from sklearn.neighbors import KNeighborsClassifier#利用邻近点方式训练数据
###引入数据###
###load_* 和 fetch_*区别:前者获取小规模,后者会下载,适用于大规模###
iris=datasets.load_iris()#引入iris鸢尾花数据,iris数据包含4个特征变量
iris_X=iris.data#特征变量
iris_y=iris.target#目标值
X_train,X_test,y_train,y_test=train_test_split(iris_X,iris_y,test_size=0.3)#利用train_test_split进行将训练集和测试集进行分开,test_size占30%
print(y_train)#我们看到训练数据的特征值分为3类
'''
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
'''
###训练数据###
knn=KNeighborsClassifier()#引入训练方法
knn.fit(X_train,y_train)#进行填充测试数据进行训练
###预测数据###
print(knn.predict(X_test))#预测特征值
'''
[1 1 1 0 2 2 1 1 1 0 0 0 2 2 0 1 2 2 0 1 0 0 0 0 0 0 2 1 0 0 0 1 0 2 0 2 0
1 2 1 0 0 1 0 2]
'''
print(y_test)#真实特征值
'''
[1 1 1 0 1 2 1 1 1 0 0 0 2 2 0 1 2 2 0 1 0 0 0 0 0 0 2 1 0 0 0 1 0 2 0 2 0
1 2 1 0 0 1 0 2]
'''
特征处理
特征提取:将任意数据转化成为可用于机器学习的数字特征,常用,字典特征提取、文本特征提取、图像特征提取等等。
sklearn.feature_extraction
字典特征提取
sklearn.feature_extraction.DicVectorizer(sparse=True,…): 字典或者包含字典的迭代器 返回值:返回sparse 矩阵。
DicVectorizer.fit_transfrom(x) x为字典数据 返回值稀疏矩阵或者数组
DicVectorizer.inverse_transform(x) X为array数组或者spares矩阵,返回值:转换之前的数据格式
DicVectorizer.get_feature_names() 返回类别名称
one-hot 编码 为字典特征处理的常见方法
使用方法
from sklearn.feature_extraction import DicVectorizer
#准备数据
data=[{
'city':'Beijin','temprature':100},{
'city':'Shanghai','temprature':60},{
'city':'Guangzhou','temprature':40}]
#实例化转换器对象
transfer=DicVectorizer(spares=False)
#调用fit_transfer
data2=transfer.fit_transfrom(data)
print("result:\n",data2)
文本特征提取
sklearn.feature_extraction.tetx.CountVectorizer(stop_words=[]) 返回词频矩阵 stop_words停用词
CountVectorizer.fit_transform(x) X为文本或者带文本的字符串的可迭代对象,返回值:返回sparse矩阵
CountVectorizer.inverse_transform(x) X为array数组或者spares矩阵,返回值:转换之前的数据格式
CountVectorizer.get_feature_names() 返回值:单词列表
统计样本的特征词数量
sklearn.feature_extraction.text.TfidfVectorizer.
原谅懒惰的我,课程资源如下:
链接:https://pan.baidu.com/s/1ddZcWYNpVTrIiMvHfzYrFA
提取码:mn12
复制这段内容后打开百度网盘手机App,操作更方便哦