网站发的文章怎么做的,公司注册查询系统,动漫制作技术是干什么的,信盈达嵌入式培训多少钱文章目录线性回归与KNN算法的核心原理及实践应用一、机器学习基础概念二、线性回归分析2.1 相关关系与回归分析2.2 一元线性回归模型2.3 误差项分析2.4 参数估计方法2.5 模型评价指标三、K-近邻算法#xff08;KNN#xff09;3.1 算法原理3.2 距离度量3.3 算法优缺点四、实践…文章目录线性回归与KNN算法的核心原理及实践应用一、机器学习基础概念二、线性回归分析2.1 相关关系与回归分析2.2 一元线性回归模型2.3 误差项分析2.4 参数估计方法2.5 模型评价指标三、K-近邻算法KNN3.1 算法原理3.2 距离度量3.3 算法优缺点四、实践案例4.1 一元线性回归实现4.2 KNN算法实现4.3 鸢尾花分类案例五、模型评价与优化5.1 混淆矩阵线性回归与KNN算法的核心原理及实践应用一、机器学习基础概念机器学习是人工智能的重要分支通过对大量数据的学习和训练让计算机具备预测和决策能力。数据量越大最终训练结果越准确针对不同的数据类型需要选择不同的数学模型。二、线性回归分析2.1 相关关系与回归分析相关关系包含因果关系和平行关系因果关系回归分析原因引起结果需要明确自变量和因变量平行关系相关分析无因果关系不区分自变量和因变量2.2 一元线性回归模型一元线性回归模型表示为y β 0 β 1 x ε y \beta_0 \beta_1 x \varepsilonyβ0β1xε其中β 0 \beta_0β0和β 1 \beta_1β1是模型参数ε \varepsilonε是误差项代表除线性因素外的随机因素所产生的误差2.3 误差项分析误差项具有重要特性独立同分布每个样本点独立且处于同一分布函数下满足高斯分布期望为0方差为(\sigma^2)不可省略误差是必然产生的且基于误差特点进行参数估计2.4 参数估计方法极大似然估计核心思想极度自恋相信自己看到的样本就是冥冥之中最接近真相的。通过似然函数最大化来估计参数。最小二乘法目标函数J ( β ) 1 2 ∑ i 1 m ( y ( i ) − β T X ( i ) ) 2 J(\beta) \frac{1}{2} \sum_{i1}^m (y^{(i)} - \beta^T X^{(i)})^2J(β)21∑i1m(y(i)−βTX(i))22.5 模型评价指标相关系数皮尔逊相关系数r ∑ ( x − x ‾ ) ( y − y ‾ ) ∑ ( x − x ‾ ) 2 ⋅ ∑ ( y − y ‾ ) 2 r \frac{\sum(x - \overline{x})(y - \overline{y})}{\sqrt{\sum(x - \overline{x})^2 \cdot \sum(y - \overline{y})^2}}r∑(x−x)2⋅∑(y−y)2∑(x−x)(y−y)判定系数 (R^2)拟合优度取值范围在[0,1]之间越接近1说明拟合效果越好三、K-近邻算法KNN3.1 算法原理KNN算法是一种基于实例的学习方法通过计算新样本与训练样本的距离找到k个最近邻根据这些邻居的类别进行投票决定新样本的类别。3.2 距离度量常用的距离公式包括欧氏距离p2曼哈顿距离p1闵可夫斯基距离p可调节3.3 算法优缺点优点简单易于理解易于实现无需训练适合对稀有事件进行分类对异常值不敏感缺点样本容量比较大时计算时间很长不均衡样本效果较差四、实践案例4.1 一元线性回归实现importpandasaspdfrommatplotlibimportpyplotaspltfromsklearn.linear_modelimportLinearRegression datapd.read_csv(data.csv)# 绘制散点图plt.scatter(data.广告投入,data.销售额)plt.show()# 建立回归模型lrLinearRegression()xdata[[广告投入]]ydata[[销售额]]lr.fit(x,y)# 训练模型# 模型检验resultlr.predict(x)scorelr.score(x,y)around(lr.intercept_[0],2)# 截距bround(lr.coef_[0][0],2)# 斜率print(线性回归模型为y {}x {}..format(b,a))# 利用回归模型进行预测predictlr.predict([[40],[45],[50]])print(predict)4.2 KNN算法实现importmatplotlib.pyplotaspltimportnumpyasnp# 读取数据datanp.loadtxt(datingTestSet2.txt)data_1data[data[:,-1]1]data_2data[data[:,-1]2]data_3data[data[:,-1]3]# 数据可视化展示figplt.figure()axplt.axes(projection3d)ax.scatter(data_1[:,0],data_1[:,1],zsdata_1[:,2],c#00DDAA,markero)ax.scatter(data_2[:,0],data_2[:,1],zsdata_2[:,2],c#FF5511,marker^)ax.scatter(data_3[:,0],data_3[:,1],zsdata_3[:,2],c#000011,marker)ax.set(xlabelXaxes,ylabelYaxes,zlabelZaxes)plt.show()# KNN算法实现fromsklearn.neighborsimportKNeighborsClassifier datanp.loadtxt(datingTestSet2.txt)Xdata[:,:-1]# 特征ydata[:,-1]# 标签neighKNeighborsClassifier(n_neighbors5)neigh.fit(X,y)print(neigh.predict([[19739,2.816960,1.686219]]))# 多人同时预测predict_data[[9744,11.440364,0.760461],[16191,0.100000,0.605619],[42377,6.519522,1.058602],[27353,11.475155,1.528626]]print(再次多人同时预测)print(neigh.predict(predict_data))4.3 鸢尾花分类案例importpandasaspd# 读取数据train_datapd.read_excel(鸢尾花训练数据.xlsx)test_datapd.read_excel(鸢尾花测试数据.xlsx)# 处理训练集数据train_Xtrain_data[[萼片长(cm),萼片宽(cm),花瓣长(cm),花瓣宽(cm)]]train_ytrain_data[[类型_num]]# 数据标准化fromsklearn.preprocessingimportscale datapd.DataFrame()data[萼片长标准化]scale(train_X[萼片长(cm)])data[萼片宽标准化]scale(train_X[萼片宽(cm)])data[花瓣长标准化]scale(train_X[花瓣长(cm)])data[花瓣宽标准化]scale(train_X[花瓣宽(cm)])# KNN模型训练fromsklearn.neighborsimportKNeighborsClassifier knnKNeighborsClassifier(n_neighbors5)knn.fit(train_X,train_y)# 测试集预测test_Xtest_data[[萼片长(cm),萼片宽(cm),花瓣长(cm),花瓣宽(cm)]]test_ytest_data[[类型_num]]data_testpd.DataFrame()data_test[萼片长标准化]scale(test_X[萼片长(cm)])data_test[萼片宽标准化]scale(test_X[萼片宽(cm)])data_test[花瓣长标准化]scale(test_X[花瓣长(cm)])data_test[花瓣宽标准化]scale(test_X[花瓣宽(cm)])test_predictedknn.predict(test_X)scoreknn.score(test_X,test_y)print(score)五、模型评价与优化5.1 混淆矩阵分类模型常用评价指标准确率Accuracy(TPTN)/(TPTNFPFN)精确率PrecisionTP/(TPFP)召回率RecallTP/(TPFN)F1-score2·(precision·recall)/(precisionrecall)某模型训练结果示例