python机器学习笔记

本专栏,记录B站在黑马程序员3天快速入门python机器学习视频 记录笔记

一、介绍

机器学习定义:
通过数据的学习,得到模型,然后用于对新数据进行预测

机器学习主要分类

  • 监督学习:分类、回归
  • 无监督学习:聚类

开发流程

  1. 获取数据
  2. 数据处理
  3. 特征工程
  4. 算法训练
  5. 模型评估

二、数据库 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,操作更方便哦

猜你喜欢

转载自blog.csdn.net/qq_34935373/article/details/114695937