2022-07-14 14:00来源:m.sf1369.com作者:宇宇
pendigits数据集里是已经处理过的图像特征,每组数据共有17个,其中前16个是处理过的数字的特征,第17个是数据标签(0~9),也即为对应的数字。
需要注意的是,由于已经经过处理,所以无法由16个数据转换成图像,如果需要具体图像可以使用MNIST数据集。
拟合趋势线。选中绘好的曲线,按右键,选择“添加趋势线”,在“类型”中选择与这条曲线最近似的类型,如:线性、对数、多项式等(其中的一个),再在这个“添加趋势线”选框中点“选项”,勾选“显示公式”和“显示R平方值”这两项,确定后趋势线做成。这时检查R值是否接近1,如果R是1或者0.995左右(并且趋势线与绘制的曲线基本重合),表示拟合的趋势线和显示的公式基本能表示数据的对应关系。但如果R跟1相比相差很大(或者趋势线与绘制的曲线大相径庭),就需要重新选“添加趋势线”中“类型”,重新拟合直到R值接近1(一定要选所有趋势线类型中R最接近1且趋势线与绘制的曲线基本重合的那个)。
如果不能找到这样一条拟合趋势线,只能证明那些数据不能被拟合成一条回归曲线(或者说拟合的效果不好,不能较好地反映数据的变化),这是因为不是所有的任何一组数据都能找到一条完美的与之相配的回归线。
用各种不同方法做出的拟合方程不一样的原因是:1、数据的规律性(即是上面所说的是否能很好地回归),2、每种方法是否运用得当(是否都找到最符合的拟合方程)。如果数据的回归性好且用每一种方法都得出了正确地拟合方程的话,我想由同一数据拟合出的方程差别应该是较小的。
当然各种方法之间本身就有一定的差异性,所以就算满足了上面所说的两个条件,做出的拟合方程也不一定完全一样。你只要在实际中摸索实践,找到一种简便有效的且最适合自己的方法,就没必要每一次都用每一种方法去做,没必要也费时费力。况且数据本身如果不是由函数直接得出(大多数情况应该都不是)的话,拟合得出的方程或曲线都只是一种趋势、估算(而不是一种真实值),在预测、统计方面的作用应该要大些。
这只是我个人的看法,仅供参考。
直接使用ActiveX控制Office比较方便的
private Missing miss=Missing.Value; //忽略的参数OLENULL
public static Missing MissValue=Missing.Value;
private Excel.Application m_objExcel;//Excel应用程序实例
private Excel.Workbooks m_objBooks;//工作表集合
private Excel.Workbook m_objBook;//当前操作的工作表
private Excel.Worksheet sheet;//当前操作的表格
public void OpenExcelFile(string filename)
{
m_objExcel = new Excel.Application();
UserControl(false);
m_objExcel.Workbooks.Open(
filename,
miss,
miss,
miss,
miss,
miss,
miss,
miss,
miss,
miss,
miss,
miss,
miss,
miss,
miss);
m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
m_objBook = m_objExcel.ActiveWorkbook;
sheet = (Excel.Worksheet)m_objBook.ActiveSheet;
}
public void CreateExceFile()
{
m_objExcel = new Excel.Application();
UserControl(false);
m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
m_objBook = (Excel.Workbook)(m_objBooks.Add(miss));
sheet = (Excel.Worksheet)m_objBook.ActiveSheet;
}
public void SaveAs(string FileName)
{
m_objBook.SaveAs(FileName, miss, miss, miss, miss,
miss, Excel.XlSaveAsAccessMode.xlNoChange,
Excel.XlSaveConflictResolution.xlLocalSessionChanges,
miss,miss, miss, miss);
//m_objBook.Close(false, miss, miss);
}
public void setValue(int x,int y,string text,System.Drawing.Font font,System.Drawing.Color color)
{
this.setValue(x,y,text);
Excel.Range range=sheet.get_Range(this.GetAix(x,y),miss);
range.Font.Size=font.Size;
range.Font.Bold=font.Bold;
range.Font.Color=color;
range.Font.Name=font.Name;
range.Font.Italic=font.Italic;
range.Font.Underline=font.Underline;
}
private string AList=ABCDEFGHIJKLMNOPQRSTUVWXYZ;
public string GetAix(int x,int y)
{
char [] AChars=AList.ToCharArray();
if(x>=26){return ;}
string s=;
s=s+AChars[x-1].ToString();
s=s+y.ToString();
return s;
}