1.机器学习分类
核心思想:越大的圈越重要,最小的点住1~2个即可。
监督学习核心是提前贴好数据标签
监督学习的流程图需要自己整理和掌握背诵。
无监督学习核心是算法自动处理,把“海量”数据——降维,聚类。
强化学习比较智能,会奖励或惩罚ai的行为,和训狗差不多。
2.机器学习流程
背诵这张图,能在纸上默写,背诵的过程中尽量能画出一样的图形,方便生动的记忆。
【第一步】Data cleaning数据预处理(也叫清洗)
缺失值处理;异常值处理;标准化(均值去除和方差缩放);归一化;编码类别特征。(五种,背诵)
主要掌握文字概念,代码理解为主,时间不够可以不背。
- (1)除去空值(np.nan)
该代码表示采用列平均填补空值,自己运行代码体会一下原理。
import numpy as np
from sklearn.impute import SimpleImputer
imp = SimpleImputer(missing_values=np.nan,strategy='mean')
imp.fit([[1,2],[np.nan,3],[7,6]])
x=[[1,2],[np.nan,3],[1,6]]
imp.transform(x)
-
(2)特征标准化(目的:把列的平均值变成0,方差变成1)
变化前
变化后
from sklearn import preprocessing
import numpy as np
X_train = np.array([[1.,-1.,2.],
[2.,-0.,0.],
[0.,1.,-1.]])
scaler = preprocessing.StandardScaler().fit(X_train)
print(scaler.mean_) #原本的列均值[1. 0. 0.33333333]
print(scaler.scale_) #原本列方差[0.81649658 0.81649658 1.24721913]
X_sclaed = scaler.transform(X_train)
print(X_sclaed)
- (3)编码类别特征(核心:数字代替文字)
使用编码方式:one-of-K (独热编码或者叫 亚编码)
核心代码就这几行,理解并掌握(precrocessing要导包,同上图)。
enc = preprocessing.OneHotEncoder()
X=[["男",'未婚'],["女",'已婚']]#这是数据
enc.fit(X)
result = enc.transform(X)
【第x步】Train Model训练模型
这里的核心考点就是:基于最小二乘的线性回归
这个不需要理解的多深刻,主要背诵公式,并知道我们机器学习算法最后得到的是这个w。是一组特征值,从而可以利用这个w来进行价格的预测。
【第x+1步】测试集模拟训练,得出Evaluate Model(训练的评价)
这里的核心考点就是怎么判断一个模型的好与坏。
当然是A模型和B模型比,谁预测的更准谁就更好。
常用的系数是均方差,越小越好。
机器学习完整流程代码
掌握,背诵,导包可以不背。
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn import metrics
#(1)导入数据
boston = load_boston()
#(2)分割数据(测试数据占总数据30%)
X_train,X_test,y_train,y_test = train_test_split(boston.data,boston.target,test_size=0.3)
#(3)用基于最小二乘的线性回归进行预测
LR = LinearRegression()
LR.fit(X_train,y_train)
#(4)用测试集看看训练的结果
y_pred = LR.predict(X_test)
#(5)对测试的结果进行评估
mse = metrics.mean_squared_error(y_test,y_pred)
print(mse)#这里用均方差查看
#=====下面的掌握LR.coef_和LR.intercept_含义即可。
print("\r\nmodel.coef_==",LR.coef_)#这是查看模型的w
print("\r\nmodel.intercept_==",LR.intercept_)#这是查看模型截距