ML.NET-ML.NET從資料庫讀取資料(ML.NET load data from database)
原先看微軟的文件
MLContext mlContext = new MLContext(); DatabaseLoader loader = mlContext.Data.CreateDatabaseLoader<HouseData>();
這段code一直無法讀到DatabaseLoader,所以就找的別的方法讀取資料庫內的資料。
首先先為你要取的資料建一個類別
daily_model是日期與數值 ,daily_modelPrediction是預測值
public class daily_model
{
[LoadColumn(0)]
public string date;
[LoadColumn(1)]
public float value;
}
public class daily_modelPrediction
{
//vector to hold alert,score,p-value values
[VectorType(3)]
public double[] Prediction { get; set; }
}
SQL抓取資料function
public DataTable GetData(string sql)
{
//連接字串
String conString = System.Configuration.ConfigurationManager.AppSettings["ConnString"];
//取得MySQLConnection
MySqlConnection conn = new MySqlConnection();
conn.ConnectionString = conString;
DataTable dt = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter(sql, conn);
adapter.Fill(dt);
return dt;
}
主程式,建立一個list收datatable的資料,抓取資料庫內的資料再依序塞進data,最後再由MLContext讀取剛剛資料庫撈的資料。
var data = new List<geodaily_model>();
DataTable dt = dal.GetData("SELECT date,value FROM daily_average order by id desc limit 30");
foreach(DataRow dr in dt.Rows)
{
data.Add(new geodaily_model { date = dr["date"].ToString(), net_p = Convert.ToSingle(dr["value"].ToString()) });
}
MLContext mlContext = new MLContext();
var mlData = mlContext.Data.LoadFromEnumerable(data);
下一篇我會介紹用SQL撈的資料去call微軟API做異常偵測。
MLContext mlContext = new MLContext(); DatabaseLoader loader = mlContext.Data.CreateDatabaseLoader<HouseData>();
這段code一直無法讀到DatabaseLoader,所以就找的別的方法讀取資料庫內的資料。
首先先為你要取的資料建一個類別
daily_model是日期與數值 ,daily_modelPrediction是預測值
public class daily_model
{
[LoadColumn(0)]
public string date;
[LoadColumn(1)]
public float value;
}
public class daily_modelPrediction
{
//vector to hold alert,score,p-value values
[VectorType(3)]
public double[] Prediction { get; set; }
}
SQL抓取資料function
public DataTable GetData(string sql)
{
//連接字串
String conString = System.Configuration.ConfigurationManager.AppSettings["ConnString"];
//取得MySQLConnection
MySqlConnection conn = new MySqlConnection();
conn.ConnectionString = conString;
DataTable dt = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter(sql, conn);
adapter.Fill(dt);
return dt;
}
主程式,建立一個list收datatable的資料,抓取資料庫內的資料再依序塞進data,最後再由MLContext讀取剛剛資料庫撈的資料。
var data = new List<geodaily_model>();
DataTable dt = dal.GetData("SELECT date,value FROM daily_average order by id desc limit 30");
foreach(DataRow dr in dt.Rows)
{
data.Add(new geodaily_model { date = dr["date"].ToString(), net_p = Convert.ToSingle(dr["value"].ToString()) });
}
MLContext mlContext = new MLContext();
var mlData = mlContext.Data.LoadFromEnumerable(data);
下一篇我會介紹用SQL撈的資料去call微軟API做異常偵測。
留言
張貼留言