机器学习的基本概念
机器学习中的数据集
- 样本 sample
- 特征 feature
- 目标 label target
- 特征工程(机器学习建模过程中最重要的部分) feature engineering
- 就是数据处理 用到Pandas
- 缺失值处理, 重复值处理 ,异常值处理
- 特征提取 把文本信息转换成数值信息( one-hot编码)
- 特征变换 归一化 minmaxScaler
- 特征衍生( 机器学习问题中, 特征衍生是决定最终模型效果最关键步骤)
- 原始的数据集上, 通过一些分组聚合的套路, 创建出一些新的特征列
- 特征交叉 性别 和职业 相乘
- 特征筛选 特征降维
- 特征处理完 就可以交给算法训练模型
数据集划分: 当数据量不是很大的前提下 7:3 ~ 8:2
- 训练集 多一些
- 测试集 少一些 工作场景下 一份测试数据只能用一次
机器学习算法分类
- 监督 有标签, 有目标
- 回归 目标值是数值,取值范围连续值
- 分类 鸢尾花 三种鸢尾花
- 无监督 没有标签, 没有目标
机器学习工作流程
模型选择
过拟合/欠拟合概念
- 模型过于简单 预测的时候会出错 欠拟合
- 过拟合 模型过于复杂, 在自己训练的时候, 训练集表现好, 测试集表现差
在sklearn中KNN算法的API
from sklearn.neighbors import KNeighborsClassifier
knn_classifier = KNeighborsClassifier(n_neighbors=指定邻居数量)
knn_classifier.fit(训练集特征值,训练集目标值)
y_predict = knn_classifier.predict(测试数据)
y_predict[0]
代码实现
import numpy as np
from sklearn import datasets
import warnings
warnings.filterwarnings
iris = datasets.load_iris()
x=iris.data
y= iris.target
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
knn_clf = KNeighborsClassifier(n_neighbors=6)
knn_clf.fit(x_train, y_train)
y_predict = knn_clf.predict(x_test)
sum(y_predict == y_test)/len(y_test)
from sklearn.metrics import accuracy_scorec
accuracy_score(y_test, y_predict)
knn_classifier.score(x_test, y_test)
|