前言
此次是我初学人工智能,在学完Python,numpy和pandas后开始正式学习机器学习,最终目标是,掌握人工智能深度学习。
这里用的是sklearn框架,用到的是train_test_split数据分割,LinearRegression线性回归算法
1.利用pandas读取数据,数据格式正常是.csv、.txt类型
2.数据清洗,比如数据中有特殊字符什么的,脏数据要把它干掉
df.replace
3.特征工程,分析和因变量有关的参数,并通过散点图分析是否是线性因果关系
df.iloc[:,2:4]
4.数据分割,划分训练集,测试集,random_state随机数种子用来生成固定随机数列,数据量8:2
x_train, x_test, y_train, y_test = train_test_split(x,y,train_size=0.8,test_size=0.2,random_state=340)
5.训练模型
linear = LinearRegression(fit_intercept=True,n_jobs=1)//实例化训练算法
linear.fit(x_train, y_train)//通过训练数据进行模型训练
pred_train = linear.predict(x_train)//通过训练出的模型来做回归
6.评估模型训练效果
score_train = linear.score(x_train,y_train)//输入x_train预测后,对比因变量获得R方
//R方定义:决定系数,反应因变量的全部变异能通过回归关系被自变量解释的比例。最大为1,正常过0.75就ok,没到的话,估计是特征没找全,尝试高阶的多项式变换
7.模型保存
from sklearn.externals import joblib
joblib.dump(linear, "./result/linear0727.model")
8.模型调用
model = joblib.load("./result/linear0727.model")
model.predict(x_test)//调用模型进行预测
总结,算法数学原理是最小二乘法,与此相关的还有非线性相关(非线性相关系数: 秩相关 ),想要深入学习,最好看下统计学回归分析。
机器学习主要是运用于回归和分类两个方向。