利用线性回归模型判断文章类别
平时,可以借助计算机来判定一篇文章是否是体育类的新闻,或者是艺术类的新闻。因此我们可以借助线性回归模型对其进行判定。当然这个数学模型有多种实现手段,比如用分类器,随机梯度下降,感知机等机器学习模型进行判定,这里我们就不用展示了,直接用社会工业界所接受的方法来进行研究,因为自己用上述的方法只有科研才会用到,对于最基本的要求而言只需要知道如何使用这些模型就行了。
作者我用的Python语言来实现的这个模型,因为此模型的库运用比较多。同时安装使用也比较方便。
一.使用单元线性回归模型判定法
代码如下:
import random import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model from sklearn.metrics import mean_squared_error, r2_score from matplotlib.font_manager import FontProperties font = FontProperties(fname=r"c:\windows\fonts\msyh.ttc", size=15) //这里是将Python当中的绘图库的字体引入我们系统当中的字体,不然的话就会造成绘制的图像当中不会有中文的!
二.引入数据集(训练集)
x=([2],[6],[4],[8],[12],[4],[23],[18],[26],[28],[35],[29]) #每一段落当中正面文字出现的次数 y=([46],[53],[57],[60],[63],[65],[66],[68],[69],[71],[72],[73]) #段落当中负面文字出现的次数
三.开始绘图同时开始进行线性回归
plt.scatter(x,y)//这里的意思是绘制散点图 plt.title("利用分类器预测文章当中的正面和负面情绪\n制作人:Geeksongs",fontproperties=font) plt.plot([1,40],[np.mean(great.predict(1)),great.predict(40)],linewidth=3,color="black") plt.show()
四.求出线性回归模型的斜率
斜率公式在高中就学过,为k =(y1-y1)/(x1-x2),太简单了。这里我们 引入已经通过线性模型计算好的y和x的values。直接利用if语句进行判断并带入,代码如下:
if((great.predict(12)-great.predict(1))/11)>1: print("这篇文章当中的负面情绪更多") else: print("这篇文章的正面情绪较多")
得解!